Buenos días,
Antes de nada, planteo este tema sabiendo que el soporte oficial no puede ofrecer ayuda tan específica, pero agradecería que me mantengan el post por si alguien puede echar una mano sobre el tema.
El caso es que me he montado un servidor de Asterisk en mi vivienda como complemento de un sistema de de automatización para domótica (Home Assistant). El propósito es recibir llamadas en mi teléfono móvil cuando se produzcan ciertas situaciones. La parte de recibir la llamada ya he logrado que funcione correctamente, pero por PJSIP, no por SIP. Lo que no logro es que el teléfono móvil muestre el número de teléfono de la FTTH de la que se está llamando. Me consta que a nivel de red está funcionando correctamente, al menos por SIP, porque hago llamadas desde un cliente virtual para móvil (SessionTalk, que es un cliente VoIP para iPhone) y la llamada se recibe con el número de teléfono sin problemas. También puedo hacerlo desde un adaptador ATA SIP (Grandstream HT802). Está configurado con los datos SIP habituales de Movistar y, al llamar desde un teléfono conectado a él a un teléfono móvil, también se recibe correctamente la llamada con su identificador correspondiente. Todo esto me hace suponer que, a nivel de LAN, no hay ningún problema.
El caso es que no entiendo por qué no se envía esta información utilizando PJSIP. Me pregunto si tengo algo (o estoy omitiendo algo) en los archivos pjsip.conf o extensions.conf (dialplan) que estén "machacando" la información relativa a CALLERID.
Dicho esto, paso a poner estas configuraciones y la información a nivel de logs que he podido extraer de Asterisk, por si alguien se ha visto en una situación similar y la ha resuelto. Veréis que algunas líneas está comentadas. Esto es porque son opciones que he ido probando a modo de ensayo/error.
La información a nivel de números de teléfonos reales y contraseñas la he enmascarado.
pjsip.conf
[general] language=es allowguest=no autodomain=yes domain=telefonica.net sipdomain=telefonica.net [transport-udp] type=transport protocol=udp bind=0.0.0.0 [endpoint_internal](!) type=endpoint context=home direct_media=no allow=g729 allow=ulaw allow=alaw allow=gsm [auth_userpass](!) type=auth auth_type=userpass [aor_dynamic](!) type=aor max_contacts=2 remove_existing=yes [100](endpoint_internal) auth=100 aors=100 mwi_from_user=100 [100](auth_userpass) username=100 password=[PASSWORD] [100](aor_dynamic) [101](endpoint_internal) auth=101 aors=101 mwi_from_user=101 [101](auth_userpass) username=101 password=[PASSWORD] [101](aor_dynamic) [endpoint] 100rel=yes [Movistar_reg] type=registration transport=transport-udp outbound_auth=Movistar_auth server_uri=sip:10.31.255.134:5070 client_uri=sip:949xxxxxx@telefonica.net contact_user=949xxxxxx retry_interval=60 expiration=3600 support_path=yes [Movistar_auth] type=auth auth_type=userpass password=949xxxxxx username=949xxxxxx@telefonica.net realm=telefonica.net [Movistar_aor] type=aor max_contacts=2 contact=sip:949xxxxxx@telefonica.net qualify_frequency=60 qualify_timeout=30 support_path=yes ;send_rpid=yes ;send_pai=yes [Movistar_endpoint] type=endpoint transport=transport-udp context=external-calls disallow=all allow=ulaw allow=alaw allow=gsm allow=g729 outbound_auth=Movistar_auth aors=Movistar_aor from_user=949xxxxxx from_domain=telefonica.net callerid=asreceived send_pai=yes rewrite_contact=no send_pai=yes send_rpid=yes [Movistar_identify] type=identify endpoint=Movistar_endpoint match=10.31.255.134
extensions.conf
[general] static=yes writeprotect=yes autofallthrough=yes extenpatternmatchnew=yes clearglobalvars=yes [external-calls] exten => _[67]XXXXXXXX,1,NoOP(Llamadas a moviles) same => n,set(PJSIP/Movistar_endpoint, ${CALLERID(all)})=949xxxxxx <949xxxxxx> ;same => n,NoOp(CALLERID(all)) ;same => n,Set(CALLERID(all)=949xxxxxx <949xxxxxx>) ;same => n,NoOp(CALLERID(all)) ;same => n,set(calltime=${STRFTIME(${EPOCH},,%C%y-%m-%d+%H:%M:%S)}) ;same => n,MixMonitor(/var/lib/asterisk/recordings/inside/${calltime}.-.${CALLERID(num)}-${EXTEN}.wav,b) same => n,DBdeltree(lastcallerout) same => n,set(DB(lastcallerout/lastcallerout)=${EXTEN}) same => n,Dial(PJSIP/Movistar_endpoint/sip:${EXTEN}@telefonica.net:5070,60) same => n,1,Hangup(21)
Endpoint info:
Endpoint: <Endpoint/CID.....................................> <State.....> <Channels.> I/OAuth: <AuthId/UserName...........................................................> Aor: <Aor............................................> <MaxContact> Contact: <Aor/ContactUri..........................> <Hash....> <Status> <RTT(ms)..> Transport: <TransportId........> <Type> <cos> <tos> <BindAddress..................> Identify: <Identify/Endpoint.........................................................> Match: <criteria.........................> Channel: <ChannelId......................................> <State.....> <Time.....> Exten: <DialedExten...........> CLCID: <ConnectedLineCID.......> ========================================================================================== Endpoint: Movistar_endpoint Unavailable 0 of inf OutAuth: Movistar_auth/949xxxxxx@telefonica.net Aor: Movistar_aor 2 Contact: Movistar_aor/sip:949xxxxxx@telefonica.net 9def89a196 Unavail nan Transport: transport-udp udp 0 0 0.0.0.0:5060 Identify: Movistar_identify/Movistar_endpoint Match: 10.31.255.134/32 ParameterName : ParameterValue =================================================================================================== 100rel : yes accept_multiple_sdp_answers : false accountcode : acl : aggregate_mwi : true allow : (ulaw|alaw|gsm|g729) allow_overlap : true allow_subscribe : true allow_transfer : true allow_unauthenticated_options : false aors : Movistar_aor asymmetric_rtp_codec : false auth : bind_rtp_to_media_address : false bundle : false call_group : callerid : asreceived callerid_privacy : allowed_not_screened callerid_tag : codec_prefs_incoming_answer : prefer:pending, operation:intersect, keep:all, transcode:allow codec_prefs_incoming_offer : prefer:pending, operation:intersect, keep:all, transcode:allow [Jul 27 12:20:40] e[1;30m -- e[0mRemote UNIX connection disconnected codec_prefs_outgoing_answer : prefer:pending, operation:intersect, keep:all, transcode:allow codec_prefs_outgoing_offer : prefer:pending, operation:union, keep:all, transcode:allow connected_line_method : invite contact_acl : context : external-calls cos_audio : 0 cos_video : 0 device_state_busy_at : 0 direct_media : true direct_media_glare_mitigation : none direct_media_method : invite disable_direct_media_on_nat : false dtls_auto_generate_cert : No dtls_ca_file : dtls_ca_path : dtls_cert_file : dtls_cipher : dtls_fingerprint : SHA-256 dtls_private_key : dtls_rekey : 0 dtls_setup : active dtls_verify : No dtmf_mode : rfc4733 fax_detect : false fax_detect_timeout : 0 follow_early_media_fork : true force_avp : false force_rport : true from_domain : telefonica.net from_user : 949xxxxxx g726_non_standard : false geoloc_incoming_call_profile : geoloc_outgoing_call_profile : ice_support : false identify_by : username,ip ignore_183_without_sdp : false inband_progress : false incoming_call_offer_pref : local incoming_mwi_mailbox : language : mailboxes : max_audio_streams : 1 max_video_streams : 1 media_address : media_encryption : no media_encryption_optimistic : false media_use_received_transport : false message_context : moh_passthrough : false moh_suggest : default mwi_from_user : mwi_subscribe_replaces_unsolicited : no named_call_group : named_pickup_group : notify_early_inuse_ringing : false one_touch_recording : false outbound_auth : Movistar_auth outbound_proxy : outgoing_call_offer_pref : remote_merge overlap_context : pickup_group : preferred_codec_only : false record_off_feature : automixmon record_on_feature : automixmon refer_blind_progress : true rewrite_contact : false rpid_immediate : false rtcp_mux : false rtp_engine : asterisk rtp_ipv6 : false rtp_keepalive : 0 rtp_symmetric : false rtp_timeout : 0 rtp_timeout_hold : 0 sdp_owner : - sdp_session : Asterisk send_aoc : false send_connected_line : yes send_diversion : true send_history_info : false send_pai : true send_rpid : true set_var : srtp_tag_32 : false stir_shaken : off stir_shaken_profile : sub_min_expiry : 0 subscribe_context : suppress_q850_reason_headers : false t38_bind_udptl_to_media_address : false t38_udptl : false t38_udptl_ec : none t38_udptl_ipv6 : false t38_udptl_maxdatagram : 0 t38_udptl_nat : false timers : yes timers_min_se : 90 timers_sess_expires : 1800 tone_zone : tos_audio : 0 tos_video : 0 transport : transport-udp trust_connected_line : yes trust_id_inbound : false trust_id_outbound : false use_avpf : false use_ptime : false user_eq_phone : false voicemail_extension : webrtc : no Asterisk ending (0).
Comando utilizado para hacer las llamadas de prueba:
originate PJSIP/Movistar_endpoint/sip:686xxxxxx@telefonica.net:5070 application Playback tt-monkeys
¿Alguien puede ayudarme con esto? Gracias por adelantado.
¡Resuelto! Ir a solución.
Me contesto yo mismo después de haberlo resuelto con la ayuda de la comunidad de Asterisk. Finalmente, tenía errores de concepto en el dialplan y en el comando con el que hacía la llamada al teléfono móvil externo. Por si a alguien le sirve de referencia, esta es la configuración final con la que he podido hacer una llamada de prueba. Queda limpiar y optimizar el contenido de los archivos, así como terminar de configurar la forma concreta de hacer la llamada de teléfono para que no sea el audio de los monos enfadados de Asterisk, pero al menos así dejo una configuración funcional desde la que se puede partir:
pjsip.conf
[general]
language=es
allowguest=no
autodomain=yes
domain=telefonica.net
sipdomain=telefonica.net
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
[endpoint_internal](!)
type=endpoint
context=home
direct_media=no
allow=g729
allow=ulaw
allow=alaw
allow=gsm
[auth_userpass](!)
type=auth
auth_type=userpass
[aor_dynamic](!)
type=aor
max_contacts=2
remove_existing=yes
[100](endpoint_internal)
auth=100
aors=100
mwi_from_user=100
[100](auth_userpass)
username=100
password=[PASSWORD]
[100](aor_dynamic)
[101](endpoint_internal)
auth=101
aors=101
mwi_from_user=101
[101](auth_userpass)
username=101
password=[PASSWORD]
[101](aor_dynamic)
[endpoint]
100rel=yes
[Movistar_reg]
type=registration
transport=transport-udp
outbound_auth=Movistar_auth
server_uri=sip:10.31.255.134:5070
client_uri=sip:949xxxxxx@telefonica.net
contact_user=949xxxxxx
retry_interval=60
expiration=3600
support_path=yes
[Movistar_auth]
type=auth
auth_type=userpass
password=949xxxxxx
username=949xxxxxx@telefonica.net
realm=telefonica.net
[Movistar_aor]
type=aor
max_contacts=2
contact=sip:949xxxxxx@telefonica.net
qualify_frequency=60
qualify_timeout=30
support_path=yes
;send_rpid=yes
;send_pai=yes
[Movistar_endpoint]
type=endpoint
transport=transport-udp
context=external-calls
disallow=all
allow=ulaw
allow=alaw
allow=gsm
allow=g729
outbound_auth=Movistar_auth
outbound_proxy=sip:10.31.255.134:5070\;lr
aors=Movistar_aor
from_user=949xxxxxx
from_domain=telefonica.net
callerid=asreceived
send_pai=yes
rewrite_contact=no
send_pai=yes
send_rpid=yes
[Movistar_identify]
type=identify
endpoint=Movistar_endpoint
match=10.31.255.134
extensions.conf
[general]
static=yes
writeprotect=yes
autofallthrough=yes
extenpatternmatchnew=yes
clearglobalvars=yes
[external-calls]
exten => _[67]XXXXXXXX,1,NoOP(Llamadas a moviles)
same => n,Set(CALLERID(all)=949xxxxxx <949xxxxxx>)
same => n,NoOp(CALLERID(all))
;same => n,set(calltime=${STRFTIME(${EPOCH},,%C%y-%m-%d+%H:%M:%S)})
;same => n,MixMonitor(/var/lib/asterisk/recordings/inside/${calltime}.-.${CALLERID(num)}-${EXTEN}.wav,b)
same => n,DBdeltree(lastcallerout)
same => n,set(DB(lastcallerout/lastcallerout)=${EXTEN})
same => n,Dial(PJSIP/Movistar_endpoint/sip:${EXTEN}@telefonica.net:5070,60)
same => n,1,Hangup(21)
Comando para hacer la llamada de teléfono
originate Local/686xxxxxx@external-calls application Playback tt-monkeys
Espero que le sirva a alguien.
Hola @sesardelaisla
Te agradecemos que compartas con la Comunidad las pruebas realizadas y toda la información añadida por si alguien más en tu situación le pueda ayudar. Dejamos el hilo unos días más abierto por si tu mismo o algún otro usuario quiere realizar alguna aportación más o consulta al respecto.
Un saludo.
Nieves
Si necesitas soporte técnico en averías de Móvil, Fijo, Movistar+ o Internet Fijo (cobre o fibra), puedes acceder a nuestro apartado de Soporte Técnico o rellenar este formulario. También puedes contactar con nosotros llamando al 1002.
Si necesitas contratar Fibra Óptica, comprobar tu cobertura Adsl y Fibra, o ver información sobre la instalación de la fibra visita nuestra página ADSL y Fibra en movistar.es
Hola @sesardelaisla
Como te indicamos agradecemos tú aportación y que hayas marcado la opción de Solución Aceptada. Por nuestra parte cerramos el hilo, pero queda disponible para su consulta para que cualquier usuario de la Comunidad pueda acceder a la información que has aportado.
Un saludo.
Fernando.
Si necesitas soporte técnico en averías de Móvil, Fijo, Movistar+ o Internet Fijo (cobre o fibra), puedes acceder a nuestro apartado de Soporte Técnico o rellenar este formulario. También puedes contactar con nosotros llamando al 1002.
Si necesitas contratar Fibra Óptica, comprobar tu cobertura Adsl y Fibra, o ver información sobre la instalación de la fibra visita nuestra página ADSL y Fibra en movistar.es