¿Cómo funciona SIP en la red celular?

Estoy confundido acerca de cómo SIP funciona, pero la mía no. Hice un servidor androide simple que abre un zócalo del servidor y escucha la conexión entrante en la red 3G / 4G. Entonces hice un cliente que se conecta al servidor, la conexión fue bloqueada por el firewall de mi portador (AT & T).

Después de esto, he descargado una aplicación VOIP de código abierto basada en SIP, y registrar estos 2 teléfonos en el proxy SIP, que se llamen unos a otros, esto funciona perfectamente.

Estoy tan confundido acerca de cómo SIP funciona en la red celular, SIP es un protocolo p2p, proxy SIP es sólo para reorientar. ¿Cómo se conectan estos 2 teléfonos entre sí en la sesión de VOIP? ¿Por qué esta conexión no está bloqueada por la operadora? ¿Puede alguien explicarme? ¡Gracias de antemano!

Actualización: Acabo de intentar enviar un paquete UDP entre AT & T y SPRINT red, no funciona; (

En SIP básico, el tráfico de medios de los puntos finales generalmente se comunica directamente entre sí de una manera P2P como usted dijo. Ellos hacen esto es dar cada otro dirección / puerto en la negociación SIP SDP .

En un mundo de red "perfecto" esto funciona bien ya que todos los puntos finales pueden hablar directamente entre sí.

Como sabemos, este no es el caso.

En la mayoría de los casos, la principal barrera en el mundo IPv4 es NAT.

La primera solución que la gente vino con es STUN . STUN le dará su dirección IP "pública" que está utilizando detrás de un NAT y la pila SIP utilizará esa dirección IP en los paquetes SIP / SDP. Esto funciona, siempre y cuando el agujero de perforación funciona.

La siguiente solución de la gente surgió con TURN . TURN es un proxy UDP y permite a un cliente (por ejemplo, un cliente SIP) asignar y utilizar una dirección IP / puerto en una red privada de una red pública (es decir, en Internet). Debe funcionar en todos los casos, pero puede poner una gran cantidad de sobrecarga de red en el servidor TURN. No será tan eficiente como las conexiones P2P. La ventaja de usar TURN es que no ambos lados necesitan apoyarla para que funcione. Así que es bueno cuando se habla entre un softphone en Internet a un dispositivo de hardware SIP en una red interna.

La siguiente solución de la gente surgió es ICE . ICE necesita ser compatible con ambos extremos SIP. Funciona extendiendo el protocolo SDP para permitirle agregar todas las conexiones posibles en la negociación SDP (todos los adaptadores de red local, direcciones públicas proporcionadas por direcciones asignadas STUN y TURN en orden de prioridad). Entonces un lado pasa por las conexiones enumeradas e intenta hacer una conexión. Esto permite que ambas conexiones sean "try" para conectar P2P y fallback a una conexión TURN si nada funciona. También debe funcionar en cualquier entorno de red a cualquier entorno de red y encontrar la ruta de red más eficiente entre los puntos finales SIP. La desventaja de ICE es que ambos extremos SIP necesitan apoyar ICE para que funcione. (Como un aparte, ICE / TURN / STUN es ahora un requisito para el protocolo WEBRTC para los navegadores web para hablar entre sí por la misma razón)

Otras posibles soluciones serían para que usted tenga algún tipo de "inteligente" sip proxy en el medio que tal vez falsificaciones ICE de un lado si el otro lado no lo apoya. Otra es tener algún tipo de pasarela de medios o B2BUA si se requiere transcodificación, esto tendría los mismos problemas que TURN tho.

Le sugeriría que configure su cliente SIP con STUN, TURN e ICE si es posible y que aumentará la probabilidad de que la llamada SIP realmente funcione.

En cuanto a por qué su caso no funciona ahora, se requieren registros de red y / o SIP para entender cuál es el impedimento exacto.

  • Implementación de App-to-App llamando a Android
  • Audífono SIP de Android enEncallEnded demora cuando termina la llamada
  • Sip stack para iphone y android
  • Cómo enviar mensajes de texto en android vía sip
  • ¿Hay un api libre de voip para android
  • ¿Cómo usar PJSIP en Android?
  • Cómo implementar el chat de voz y video
  • Enviar Notificaciones push a iOS / Android en WiFi cerrado (sin conexión a Internet)
  • Android: Implementación de un programa VoIP
  • Aplicación VOIP para Android sin acceso a Internet
  • SIP SSL de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.