Hey so, I'm having problems with e911 outbound. I enabled it on my provider which works just fine outbound normally, but when dialing 933 my phone is getting a 404 Error (Grandstream). The provider logs aren't showing any failed attempts which makes me think the issue is with the PBX.
I have a caller ID name and number under the extension I'm dialing from.
Below is a dumped log, thoughts?
I have a caller ID name and number under the extension I'm dialing from.
Below is a dumped log, thoughts?
2020-08-12 15:19:17.532714 [INFO] mod_dialplan_xml.c:637 Processing 101 <101>->933 in context [domain]
Dialplan: sofia/internal/101@[domain] parsing [[domain]->user_exists] continue=true
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_exists] ${loopback_leg}() =~ /^B$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_exists] () =~ // break=on-false
Dialplan: sofia/internal/101@[domain] Action set(user_exists=${user_exists id ${destination_number} ${domain_name}}) INLINE
EXECUTE [depth=0] sofia/internal/101@[domain] set(user_exists=false)
2020-08-12 15:19:17.572691 [DEBUG] mod_dptools.c:1672 SET sofia/internal/101@[domain] [user_exists]=[false]
Dialplan: sofia/internal/101@[domain] Action set(from_user_exists=${user_exists id ${sip_from_user} ${sip_from_host}}) INLINE
EXECUTE [depth=0] sofia/internal/101@[domain] set(from_user_exists=true)
2020-08-12 15:19:17.572691 [DEBUG] mod_dptools.c:1672 SET sofia/internal/101@[domain] [from_user_exists]=[true]
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_exists] ${user_exists}(false) =~ /^true$/ break=on-false
Dialplan: sofia/internal/101@[domain] parsing [[domain]->caller-details] continue=true
Dialplan: sofia/internal/101@[domain] Regex (PASS) [caller-details] ${caller_destination}() =~ /^$/ break=never
Dialplan: sofia/internal/101@[domain] Action set(caller_destination=${destination_number}) INLINE
EXECUTE [depth=0] sofia/internal/101@[domain] set(caller_destination=933)
2020-08-12 15:19:17.572691 [DEBUG] mod_dptools.c:1672 SET sofia/internal/101@[domain] [caller_destination]=[933]
Dialplan: sofia/internal/101@[domain] Action set(caller_id_name=${caller_id_name}) INLINE
EXECUTE [depth=0] sofia/internal/101@[domain] set(caller_id_name=101)
2020-08-12 15:19:17.572691 [DEBUG] mod_dptools.c:1672 SET sofia/internal/101@[domain] [caller_id_name]=[101]
Dialplan: sofia/internal/101@[domain] Action set(caller_id_number=${caller_id_number})
Dialplan: sofia/internal/101@[domain] parsing [[domain]->call-direction] continue=true
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [call-direction] ${call_direction}() =~ /^(inbound|outbound|local)$/ break=never
Dialplan: sofia/internal/101@[domain] ANTI-Action export(call_direction=local) INLINE
EXECUTE [depth=0] sofia/internal/101@[domain] export(call_direction=local)
2020-08-12 15:19:17.572691 [DEBUG] switch_channel.c:1310 EXPORT (export_vars) [call_direction]=[local]
Dialplan: sofia/internal/101@[domain] parsing [[domain]->global-variables] continue=true
Dialplan: sofia/internal/101@[domain] Regex (PASS) [global-variables] () =~ // break=on-false
Dialplan: sofia/internal/101@[domain] Action set(RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)})
Dialplan: sofia/internal/101@[domain] parsing [[domain]->domain-variables] continue=true
Dialplan: sofia/internal/101@[domain] Regex (PASS) [domain-variables] () =~ // break=on-false
Dialplan: sofia/internal/101@[domain] Action export(origination_callee_id_name=${destination_number})
Dialplan: sofia/internal/101@[domain] parsing [[domain]->is_loopback] continue=true
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [is_loopback] ${is_follow_me_loopback}() =~ /true/ break=on-false
Dialplan: sofia/internal/101@[domain] parsing [[domain]->user_record] continue=true
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_exists}(false) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_record}() =~ /^all$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_exists}(false) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${call_direction}(local) =~ /^inbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_record}() =~ /^inbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_exists}(false) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${call_direction}(local) =~ /^outbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_record}() =~ /^outbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_exists}(false) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${call_direction}(local) =~ /^local$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_record}() =~ /^local$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${from_user_exists}(true) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Action set(from_user_record=${user_data ${sip_from_user}@${sip_from_host} var user_record}) INLINE
EXECUTE [depth=0] sofia/internal/101@[domain] set(from_user_record=)
2020-08-12 15:19:17.572691 [DEBUG] mod_dptools.c:1672 SET sofia/internal/101@[domain] [from_user_record]=[UNDEF]
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${from_user_exists}(true) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${from_user_record}() =~ /^all$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${from_user_exists}(true) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${call_direction}(local) =~ /^inbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${from_user_record}() =~ /^inbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${from_user_exists}(true) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${call_direction}(local) =~ /^outbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${from_user_record}() =~ /^outbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${from_user_exists}(true) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${call_direction}(local) =~ /^local$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${from_user_record}() =~ /^local$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${record_session}() =~ /^true$/ break=on-false
Dialplan: sofia/internal/101@[domain] parsing [[domain]->redial] continue=true
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [redial] destination_number(933) =~ /^(redial|\*870)$/ break=on-true
Dialplan: sofia/internal/101@[domain] Regex (PASS) [redial] () =~ // break=never
Dialplan: sofia/internal/101@[domain] Action hash(insert/${domain_name}-last_dial/${caller_id_number}/${destination_number})
Dialplan: sofia/internal/101@[domain] parsing [[domain]->speed_dial] continue=false
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [speed_dial] destination_number(933) =~ /^\*0(.*)$/ break=on-false
Dialplan: sofia/internal/101@[domain] parsing [[domain]->default_caller_id] continue=true
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [default_caller_id] ${emergency_caller_id_number}([number]) =~ /^$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [default_caller_id] ${outbound_caller_id_number}([number]) =~ /^$/ break=never
Dialplan: sofia/internal/101@[domain] parsing [[domain]->[provider].911] continue=false
Dialplan: sofia/internal/101@[domain] Regex (PASS) [[provider].911] ${user_exists}(false) =~ /false/ break=on-false
Dialplan: sofia/internal/101@[domain] Regex (PASS) [[provider].911] destination_number(933) =~ /(^911$|^933$)/ break=on-false
Dialplan: sofia/internal/101@[domain] Action set(sip_h_X-accountcode=${accountcode})
Dialplan: sofia/internal/101@[domain] Action export(call_direction=outbound)
Dialplan: sofia/internal/101@[domain] Action unset(call_timeout)
Dialplan: sofia/internal/101@[domain] Action set(hangup_after_bridge=true)
Dialplan: sofia/internal/101@[domain] Action set(effective_caller_id_name=${outbound_caller_id_name})
Dialplan: sofia/internal/101@[domain] Action set(effective_caller_id_number=${outbound_caller_id_number})
Dialplan: sofia/internal/101@[domain] Action set(inherit_codec=true)
Dialplan: sofia/internal/101@[domain] Action set(ignore_display_updates=true)
Dialplan: sofia/internal/101@[domain] Action set(callee_id_number=933)
Dialplan: sofia/internal/101@[domain] Action set(continue_on_fail=true)
Dialplan: sofia/internal/101@[domain] Action bridge(sofia/gateway/37c51852-43d2-4bd6-a714-bd71a84be22b/933)
Dialplan: sofia/internal/101@[domain] parsing [[domain]->user_exists] continue=true
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_exists] ${loopback_leg}() =~ /^B$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_exists] () =~ // break=on-false
Dialplan: sofia/internal/101@[domain] Action set(user_exists=${user_exists id ${destination_number} ${domain_name}}) INLINE
EXECUTE [depth=0] sofia/internal/101@[domain] set(user_exists=false)
2020-08-12 15:19:17.572691 [DEBUG] mod_dptools.c:1672 SET sofia/internal/101@[domain] [user_exists]=[false]
Dialplan: sofia/internal/101@[domain] Action set(from_user_exists=${user_exists id ${sip_from_user} ${sip_from_host}}) INLINE
EXECUTE [depth=0] sofia/internal/101@[domain] set(from_user_exists=true)
2020-08-12 15:19:17.572691 [DEBUG] mod_dptools.c:1672 SET sofia/internal/101@[domain] [from_user_exists]=[true]
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_exists] ${user_exists}(false) =~ /^true$/ break=on-false
Dialplan: sofia/internal/101@[domain] parsing [[domain]->caller-details] continue=true
Dialplan: sofia/internal/101@[domain] Regex (PASS) [caller-details] ${caller_destination}() =~ /^$/ break=never
Dialplan: sofia/internal/101@[domain] Action set(caller_destination=${destination_number}) INLINE
EXECUTE [depth=0] sofia/internal/101@[domain] set(caller_destination=933)
2020-08-12 15:19:17.572691 [DEBUG] mod_dptools.c:1672 SET sofia/internal/101@[domain] [caller_destination]=[933]
Dialplan: sofia/internal/101@[domain] Action set(caller_id_name=${caller_id_name}) INLINE
EXECUTE [depth=0] sofia/internal/101@[domain] set(caller_id_name=101)
2020-08-12 15:19:17.572691 [DEBUG] mod_dptools.c:1672 SET sofia/internal/101@[domain] [caller_id_name]=[101]
Dialplan: sofia/internal/101@[domain] Action set(caller_id_number=${caller_id_number})
Dialplan: sofia/internal/101@[domain] parsing [[domain]->call-direction] continue=true
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [call-direction] ${call_direction}() =~ /^(inbound|outbound|local)$/ break=never
Dialplan: sofia/internal/101@[domain] ANTI-Action export(call_direction=local) INLINE
EXECUTE [depth=0] sofia/internal/101@[domain] export(call_direction=local)
2020-08-12 15:19:17.572691 [DEBUG] switch_channel.c:1310 EXPORT (export_vars) [call_direction]=[local]
Dialplan: sofia/internal/101@[domain] parsing [[domain]->global-variables] continue=true
Dialplan: sofia/internal/101@[domain] Regex (PASS) [global-variables] () =~ // break=on-false
Dialplan: sofia/internal/101@[domain] Action set(RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)})
Dialplan: sofia/internal/101@[domain] parsing [[domain]->domain-variables] continue=true
Dialplan: sofia/internal/101@[domain] Regex (PASS) [domain-variables] () =~ // break=on-false
Dialplan: sofia/internal/101@[domain] Action export(origination_callee_id_name=${destination_number})
Dialplan: sofia/internal/101@[domain] parsing [[domain]->is_loopback] continue=true
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [is_loopback] ${is_follow_me_loopback}() =~ /true/ break=on-false
Dialplan: sofia/internal/101@[domain] parsing [[domain]->user_record] continue=true
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_exists}(false) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_record}() =~ /^all$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_exists}(false) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${call_direction}(local) =~ /^inbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_record}() =~ /^inbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_exists}(false) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${call_direction}(local) =~ /^outbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_record}() =~ /^outbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_exists}(false) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${call_direction}(local) =~ /^local$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${user_record}() =~ /^local$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${from_user_exists}(true) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Action set(from_user_record=${user_data ${sip_from_user}@${sip_from_host} var user_record}) INLINE
EXECUTE [depth=0] sofia/internal/101@[domain] set(from_user_record=)
2020-08-12 15:19:17.572691 [DEBUG] mod_dptools.c:1672 SET sofia/internal/101@[domain] [from_user_record]=[UNDEF]
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${from_user_exists}(true) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${from_user_record}() =~ /^all$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${from_user_exists}(true) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${call_direction}(local) =~ /^inbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${from_user_record}() =~ /^inbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${from_user_exists}(true) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${call_direction}(local) =~ /^outbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${from_user_record}() =~ /^outbound$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${from_user_exists}(true) =~ /^true$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (PASS) [user_record] ${call_direction}(local) =~ /^local$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${from_user_record}() =~ /^local$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [user_record] ${record_session}() =~ /^true$/ break=on-false
Dialplan: sofia/internal/101@[domain] parsing [[domain]->redial] continue=true
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [redial] destination_number(933) =~ /^(redial|\*870)$/ break=on-true
Dialplan: sofia/internal/101@[domain] Regex (PASS) [redial] () =~ // break=never
Dialplan: sofia/internal/101@[domain] Action hash(insert/${domain_name}-last_dial/${caller_id_number}/${destination_number})
Dialplan: sofia/internal/101@[domain] parsing [[domain]->speed_dial] continue=false
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [speed_dial] destination_number(933) =~ /^\*0(.*)$/ break=on-false
Dialplan: sofia/internal/101@[domain] parsing [[domain]->default_caller_id] continue=true
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [default_caller_id] ${emergency_caller_id_number}([number]) =~ /^$/ break=never
Dialplan: sofia/internal/101@[domain] Regex (FAIL) [default_caller_id] ${outbound_caller_id_number}([number]) =~ /^$/ break=never
Dialplan: sofia/internal/101@[domain] parsing [[domain]->[provider].911] continue=false
Dialplan: sofia/internal/101@[domain] Regex (PASS) [[provider].911] ${user_exists}(false) =~ /false/ break=on-false
Dialplan: sofia/internal/101@[domain] Regex (PASS) [[provider].911] destination_number(933) =~ /(^911$|^933$)/ break=on-false
Dialplan: sofia/internal/101@[domain] Action set(sip_h_X-accountcode=${accountcode})
Dialplan: sofia/internal/101@[domain] Action export(call_direction=outbound)
Dialplan: sofia/internal/101@[domain] Action unset(call_timeout)
Dialplan: sofia/internal/101@[domain] Action set(hangup_after_bridge=true)
Dialplan: sofia/internal/101@[domain] Action set(effective_caller_id_name=${outbound_caller_id_name})
Dialplan: sofia/internal/101@[domain] Action set(effective_caller_id_number=${outbound_caller_id_number})
Dialplan: sofia/internal/101@[domain] Action set(inherit_codec=true)
Dialplan: sofia/internal/101@[domain] Action set(ignore_display_updates=true)
Dialplan: sofia/internal/101@[domain] Action set(callee_id_number=933)
Dialplan: sofia/internal/101@[domain] Action set(continue_on_fail=true)
Dialplan: sofia/internal/101@[domain] Action bridge(sofia/gateway/37c51852-43d2-4bd6-a714-bd71a84be22b/933)