Hi,
I have an IMS core deployed using kamailio 5.0.2. Calls from clients are reaching the core pcscf from a freeswitch (with address A.A.A.A) + a kamailio acting as proxy (with address B.B.B.B), so the INVITE request looks like this:
INVITE sip:1111111111@mnc001.mcc001.3gppnetwork.org SIP/2.0
Record-Route: <sip:A.A.A.A;lr>
Via: SIP/2.0/UDP A.A.A.A;branch=z9hG4bK8735.ef7a61e110f335b2e92a8c1d430de585.0
Via: SIP/2.0/UDP B.B.B.B:5080;received=B.B.B.B;rport=5080;branch=z9hG4bKHpB704ZaXSKtm
Max-Forwards: 65
From: "222222222" <sip:222222222@B.B.B.B>;tag=eytD49ymQr71S
To: <sip:1111111111@mnc001.mcc001.3gppnetwork.org>
Call-ID: 77d249c0-487c-1236-1997-00163edbaa97
CSeq: 115249948 INVITE
Contact: <sip:mod_sofia@B.B.B.B:5080>
User-Agent: FreeSWITCH-mod_sofia/1.6.19+git~20170927T175834Z~38f568d343~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 224
P-Charge-Info: <sip:222222222@mobile.tuenti.int>;npi=ISDN;noa=4
X-FS-Support: update_display,send_info
Remote-Party-ID: "222222222" <sip:222222222@B.B.B.B>;party=calling;screen=yes;privacy=off
If the client cancels the request, the CANCEL request that gets to the core pcscf looks like this:
CANCEL sip:1111111111@mnc001.mcc001.3gppnetwork.org SIP/2.0
Via: SIP/2.0/UDP A.A.A.A;branch=z9hG4bK8735.ef7a61e110f335b2e92a8c1d430de585.0
Max-Forwards: 65
From: "222222222" <sip:222222222@B.B.B.B>;tag=eytD49ymQr71S
To: <sip:1111111111@mnc001.mcc001.3gppnetwork.org>
Call-ID: 77d249c0-487c-1236-1997-00163edbaa97
CSeq: 115249948 CANCEL
Content-Length: 0
Reason: Q.850;cause=16;text="Normal Call Clearing"
The processing of the CANCEL at the pcscf is eventually reaching the t_check_trans() function, but the logs return “no CANCEL matching found!” and thus the processing ends. I have followed the code up to the via_matching function in the t_lookup.c file of the tm module source and added some logs. The via matching is failing at the port comparison (the port stored for the INVITE is “5060”, the port stored for the CANCEL is “0”.
The flow works ok with a different client (connected directly to the core) which includes the port in the Via headers.
¿Can this be a bug in kamailio or am I doing something wrong?. AFAIK The RFC 3261 does not mandate to include the ports in the sent-by element of the Via header
Thanks!
Carlos
________________________________
Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede contener información privilegiada o confidencial y es para uso exclusivo de la persona o entidad de destino. Si no es usted. el destinatario indicado, queda notificado de que la lectura, utilización, divulgación y/o copia sin autorización puede estar prohibida en virtud de la legislación vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción.
The information contained in this transmission is privileged and confidential information intended only for the use of the individual or entity named above. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this transmission in error, do not read it. Please immediately reply to the sender that you have received this communication in error and then delete it.
Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário, pode conter informação privilegiada ou confidencial e é para uso exclusivo da pessoa ou entidade de destino. Se não é vossa senhoria o destinatário indicado, fica notificado de que a leitura, utilização, divulgação e/ou cópia sem autorização pode estar proibida em virtude da legislação vigente. Se recebeu esta mensagem por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e proceda a sua destruição
hola.
Estuve buscando información pero encuentro muy poca y que no entiendo
mucho, estoy utilizando dispatcher para 3 FreeSWITCH, cuando una Gateway de
los FS regresa <sip:503> <q850:41> ( Es la información que regresa el
proveedor) kamailio convierte el 503 en 500, hace un translate de 41 = 500.
Es posible dejar que no haga esas conversiones y regrese el paquete tal
cual como lo da el proveedor ?
--
Un hombre de carácter podrá ser derrotado pero jamás destruido.
ERNEST HEMINGWAY.
Hola amigos, este es mi primer tema, les cuento un poco: Soy consultor en sistemas y telecomunicaciones y estoy trabajando en un nuevo proyecto para video llamadas, estoy viendo las alternativas open y me gusto Kamailio tengo ganas de ingresar en la comunidad.
Me surge la necesidad de implementar un canal de WEB-Videoconferencia para atencion al cliente integrado con un sistema de call center a travez de un troncal zip por lo que estuve investigando el sip router soporta WebRTC por lo cual se podria integrar con un softphone web por browser.
Tengo las siguientes dudas y agradezco de antemano su ayuda en el camino de sumar el conocimiento en la comunidad.
1) Se puede conectar con otros SipServer a travez de un troncal?
2) Tiene incorporado un sistema de ivr o se puede adaptar a ivr's sip?
3) Cuando un cliente llama con videoconferencia y mientras espera en una cola de atencion puede recibir un video mientras espera como por ejemplo un video corporatiovo o de publicidad?
4) Si el cliente inicia una videoconferencia y el endpoint destino es un hardphone sip que no tiene video, se podria implementar que en su lugar tambien se reproduzca el video corporativo o de publicidad?
Muchas gracias por la colaboracion, espero ser un miembro activo en la lista¡¡¡
Saludos.
Atte. Carlos LestaTel.: +54 9 11 5716-0943Cel.-WhatsApp: +54 9 11 3411-9163Nextel: 54*802*4200
Hola,
A través de la interfaz Siremis estoy intentando visualizar y comprobar la presencia de usuarios conectados al servidor Kamailio. En un principio tenía bastante claro que esto se comprobaba desde Presence Services -> Presentity List, ahí comprobé que al conectar un móvil a la aplicación este aparecía en esa 'Lista de presencia'. La duda me ha surgido cuando he comprobado que parece ser que no todos los usuarios aparecen en esa Presentity List ya que al conectar otro móvil a la aplicación este usuario no se añadía a la lista, sin embargo en Subscriber Services -> Location List, en esa si que me aparecía además con información sobre la app a través de la que se había conectado, etc.
Entonces, ¿Porqué no todos los usuarios aparecen en la Presentity List? ¿Debo hacer / configurar algo para que esto ocurra? ¿Que diferencias hay entre la Presentity List y la Location List? ¿Porqué en la primera aparecen todos y en la segunda no?
Sé que pueden parecer muchas dudas, pero es todo lo que me planteo ahora mismo a grandes rasgos sobre el control de presencia.
Muchas gracias de antemano a todo aquel/aquella que me pueda ayudar.
Un saludo.
Hola, estoy trabajando en una aplicación de comunicación de VoIP con Kamailio como servidor SIP y utilizando la interfaz SIREMIS.
Como administrador añadimos "Subscribers" que se registrarán luego en el servidor para que se puedan hacer más adelante las negociaciones necesarias en el momento que quieran realizar una llamada. Mi pregunta es ¿Cómo se pueden hacer grupos de "contactos" para que por ejemplo sólo puedan realizarse llamadas entre sí los "contactos " de ese grupo? es decir podemos tener muchos "subscribers" en el servidor y que pertenezcan a dos grupos diferenciados y que sólo puedan hablar entre sí contactos de cada grupo.
Muchas gracias y un saludo!
Señores,
Muy buenos días/tardes a todos.
Me estoy rompiendo un poco la cabeza con creo un problema que lo tengo sobre
los ojos, favor si me ayudan con esto.
Tengo ya operando hace un rato un Kamailio+Rtproxy+Asterisk/Freswich
funcionando sin problemas.
listen=udp:IPPUBLICA:5060
listen=udp:IPPRIVADA:5060
mhomed=1
rtpproxy_manage("rwie"); para un lado y
rtpproxy_manage("rwei"); para el otro.
rtpproxy -F -l IPPUBLICA/IPPRIADA -m 10000 -M 20000 -s udp:127.0.0.1:7722 -d
DBUG:LOG_LOCAL1 -u kamailio"
El problema
Debo de levantar un segundo Kamailio pero por inconvenientes, este estará
tras un firewall.
El escenario ahora es el siguiente:
NAT + KAMAILIO y Rtpproxy en brindging mode + cluster de Asterisk/Freeswitch
Tengo configurado kamailio de la siguiente forma:
listen=udp:IPPRIVADA1:5060 advertise IPPUBLICA:5060
listen=udp:IPPRIVADA2:5060
mhomed=1
rtpproxy_manage("rwie"); para un lado y
rtpproxy_manage("rwei"); para el otro.
rtpproxy -A IPPUBLICA/IPPRIVADA2 -F -l IPPRIVADA1/IPPRIVADA2 -m 10000 -M
20000 -s udp:127.0.0.1:7722 -d DBUG:LOG_LOCAL1 -u kamailio"
Reviso con ngrep acaso las cabeceras tengan la direcciones ip
correspondientes al igual que SDP, todo está ok pero no tengo audio en
ningún sentido.
Gracias
Atte.
Mauricio
Amigo.
Yo tampoco soy un experto en el tema, pero creo te puedo ayudar.
Tomando un poco lo que indicas, te comento:
1. quisiera integrar varios Asterisk (PBX) con un solo Kamailio utilizando
realtime.
Hay un par de guías que te ayudan en esto,
http://kb.asipto.com/asterisk:realtime:kamailio-4.0.x-asterisk-11.3.0-astdb,
http://saevolgo.blogspot.com/2011/11/how-to-increasing-voip-services.html,
http://nil.uniza.sk/sip/application-servers/kamailio-configuration-provide-l
oad-balancing-and-failover-media-services
La primera orientada a aprovechar las bondades de Kamailio en el manejo de
SIP versus asterisk ya que hasta antes de pjsip, daba mucho que desear (no
sé cómo anda pjsip, habrá que darle una vuelta).
Las otras guías, son para balancear carga de llamadas en 1 o más asterisk,
con dispatcher y quizá rtpproxy.
2. rutear el tráfico de acuerdo al dominio de destino
Respecto a este punto, creo tienes una confusión:
1. Asterisk no opera multidominio, conceptualmente no es para ello, puedes
hacer un juego con los contextos pero no es lo mismo.
2. Las guías arriba indicadas te permiten tener una única base de
sipuser/subscriber por lo cual tomando el caso que la utilices como tal, en
ella tendrás los usuarios de todos los dominios y se reflejará en todos los
Asterisk.
Tomando la misma guía podrías hacer algo poco ortodoxo como repetir y
renombrar las configuraciones, cuidadosamente y con simples sentencias if
derivar las autentificaciones y el enrutamiento... ejemplo:
#!define WITH_ASTERISK1
#!define WITH_ASTERISK2
#!define WITH_ASTERISK3
#!define DBURL "mysql://openser:openserrw@localhost/openser"
#!ifdef WITH_ASTERISK1
#!define DBASTURL "mysql://asterisk:asterisk_password@localhost/asterisk1"
#!ifdef WITH_ASTERISK2
#!define DBASTURL "mysql://asterisk:asterisk_password@localhost/asterisk2"
#!ifdef WITH_ASTERISK3
#!define DBASTURL "mysql://asterisk:asterisk_password@localhost/asterisk3"
#!endif
#!endif
#!endif
#!endif
Ya más elaborado, podrías usar el módulo ipops trabajando los dominios según
el segmento de red
Saludos.
Buenos días, estoy comenzando a incursionar un poco en Kamailio después
de haber utilizado varios años Asterisk. Estuve mirando como trabaja
Kamailio y las guia de integración junto con asterisk. Me he planteado
el siguiente desafío y me he pechado con algunos impedimentos que
seguramente se de por mi ignorancia.
Yo quisiera integrar varios Asterisk (PBX) con un solo Kamailio
utilizando realtime. Mi idea es rutear el tráfico a la PBX correcta.
Quisiera rutear el tráfico de acuerdo al dominio de destino (sip.pbx1 ->
pbx1.asterisk, sip.pbx2 -> pbx2.asterisk). Observando las guías y los
módulos veo que el auth_db se carga al inicio con una DB de Asterisk
predefinida, esto no me permite consultar en otra DB de otro Asterisk,
por que cuando utiliza el auth_check va directo a la base de datos con
la que se cargo el modulo. Hay alguna forma de indicarle a que db debe
ir a consultar el registro? Yo sabiendo el dominio con la pseudovariable
$fd al cual se quiere registrar obtengo la DBURL realizando una consulta
con el módulo sqlops pero desconozco la forma de setearlo al modulo
auth_db.
Resumiendo un poco cual es mi objetivo:
Kamailio
|
---------------------------------------------------------
| *(a)sip.pbx1 | *(a)sip.pbx2 | *(a)sip.pbx3
| | |
pbx1.asterisk - pbx2.asterisk - pbx3.asterisk
Espero que se entienda y me puedan ayudar.
--
Slds.-