simulator - sipp github
Plataforma de prueba SIP (4)
Estoy buscando una herramienta que prueba las llamadas SIP . Una plataforma que realiza una llamada desde el dispositivo SIP A al dispositivo SIP B e informa los resultados ...
¿Alguna idea? Una plataforma de simulación sería ideal.
gracias, cateof
¿Qué quieres probar aparte de si la llamada llega? ¿No puedes simplemente llamar al dispositivo B desde el dispositivo A y ver si puedes hablar a través de la conexión? Si desea echar un vistazo a los paquetes que se envían, debe buscar en wireshark .
Echa un vistazo a SIPp en SourceForge. Tiene muchos escenarios diferentes para probar que el modo UAS (servidor) probablemente sería interesante para usted y parece permitir INVITAR, BYE, etc.
Hay muchas soluciones. Algunos más quebrados que otros. Aquí hay un breve resumen de lo que he encontrado mientras buscaba una base para una solución de prueba automatizada adecuada.
Está bien si solo desea un solo diálogo a la vez. Lo que no funciona aquí son soluciones complejas en las que necesita sincronizar 2 tramos de llamada, hacer el registro, la llamada y la presencia en el mismo escenario. Si sigue este camino, terminará ejecutando varios escenarios de envío para cada elemento de conversación por separado. Sipp tampoco escala en absoluto para las transferencias de medios. Aunque es multiproceso, algo impide que se ejecute de forma simultánea: si observa htop
por ejemplo, verá que el sipp nunca cruza la línea del 100%. Alrededor de 50 llamadas de medios, comienza a cortar el audio y toma toda la CPU de la máquina.
A veces puede perder el rastro de lo que está sucediendo, algunos paquetes que ni siquiera pertenecen a la llamada pueden fallar la prueba. Tiene algunos errores tontos como la comparación entre mayúsculas y minúsculas de los encabezados.
Solución basada en Ruby donde tienes que escribir tus propios escenarios en Ruby. Tiene su propia pila SIP y un montón de pruebas. Si bien es generalmente bueno y maneja muy bien una gran cantidad de escenarios complejos, su diseño es terrible. Los errores son difíciles de rastrear y después de una semana tuve más de 10 parches que necesitaba para hacer cosas básicas. Más tarde, me enteré de que algunos de los escenarios se escriben de una manera diferente, pero los desarrolladores de SIPr no eran muy receptivos y les llevó mucho tiempo descubrirlo. Sincronizar las acciones de muchos agentes si es un problema difícil, ya que prefieren usar una versión basada en eventos, pero de un solo hilo ... solo hace que te concentres demasiado en "en qué orden puede suceder esto y lo manejo" correctamente ", en lugar de escribir la prueba real.
Solución comercial. Nunca lo probé correctamente ya que la funcionalidad básica falta en la versión de evaluación y es difícil gastar tanto dinero en algo que no está seguro de que funcione ...
Solución basada en Java que reutiliza la pila Jain-SIP. Puede hacer casi cualquier escenario y es bastante bueno. Intenta hacer que todo funcione sin bloqueo / acción, lo que lleva a los mismos problemas que SIPr, pero en este caso es trivial hacer que sea paralelo / subproceso. Tiene su propia cuota de errores, por lo que no todo funciona bien en el paquete de vainilla, pero la mayoría de las cosas se pueden parchar. Los desarrolladores parecen estar ocupados con otros proyectos, por lo que no se actualiza durante mucho tiempo. Si necesita transferencias, presencia, información de diálogo, mensajes personalizados, manejo de RTP, etc., tendrá que escribir sus propias modificaciones para admitirlas. No es bueno para las pruebas de rendimiento.
Si eres un fanático de Java como yo, se puede usar de forma sencilla desde Jython, JRuby o cualquier otro lenguaje JVM.
Al final, elegí SIPunit como la solución menos dañada / malvada / inutilizable. De ninguna manera es perfecto, pero ... funciona en la mayoría de los casos. Si volviera a hacer el proyecto con todo este conocimiento, probablemente reutilizaría las configuraciones de SIPp y trataría de escribir mi propia solución sana que utiliza el subprocesamiento adecuado, pero eso es un proyecto de al menos medio año para una persona, para que sea bueno suficiente para la producción.
Pruebe SIPInspector . Es una utilidad basada en JAVA para recrear diferentes escenarios de señalización SIP. Puede jugar RTP y hacer una prueba de estrés de su sistema también. Desde que está escrito en JAVA, es altamente portátil y funciona en diferentes sistemas de oeprating. Mucho más fácil de usar que SIPp.