I’m testing a D80 to determine viability for our company, and everything seems to work OK except for one issue. I’ve configured the phone via Asterisk+DPMA and can place and receive calls, access visual voicemail, etc. However, the phone has a yellow exclamation in the top right corner of the screen which seems to indicate some problem, but since everything is working fine I’m not sure what that might be.
If I tap the yellow exclamation icon the list of available status modes is displayed, and if I tap on any of the available statuses I can properly see the status updated in asterisk via "digium_phones show status ".
How can I determine what this yellow warning icon means, and thus how I might fix it?
I do notice the following logs whenever I change the phone’s status via the status menu:
-- Executing [proxy@dpma_message_context:1] Set("Message/ast_msg_queue", "MESSAGE(custom_data)=mark_all_outbound") in new stack
-- Executing [proxy@dpma_message_context:2] Set("Message/ast_msg_queue", "MESSAGE_DATA(X-Digium-AppServer-Response-URI)=sip:<phone NAT IP>:61596") in new stack
-- Executing [proxy@dpma_message_context:3] Set("Message/ast_msg_queue", "MESSAGE_DATA(X-Digium-AppServer-Response-FullContact)=") in new stack
-- Executing [proxy@dpma_message_context:4] MessageSend("Message/ast_msg_queue", "digium_phone:blah") in new stack
-- Executing [proxy@dpma_message_context:5] Hangup("Message/ast_msg_queue", "") in new stack
== Spawn extension (dpma_message_context, proxy, 5) exited non-zero on 'Message/ast_msg_queue'
-- Executing [digium_phone_module@dpma_message_context:1] Set("Message/ast_msg_queue", "MESSAGE(custom_data)=mark_all_outbound") in new stack
-- Executing [digium_phone_module@dpma_message_context:2] Set("Message/ast_msg_queue", "TMP_RESPONSE_URI=sip:<phone NAT IP>:61596") in new stack
-- Executing [digium_phone_module@dpma_message_context:3] Set("Message/ast_msg_queue", "MESSAGE_DATA(Request-URI)=") in new stack
-- Executing [digium_phone_module@dpma_message_context:4] Set("Message/ast_msg_queue", "MESSAGE_DATA(X-Digium-AppServer-Response-URI)=") in new stack
-- Executing [digium_phone_module@dpma_message_context:5] Set("Message/ast_msg_queue", "MESSAGE_DATA(X-Digium-AppServer-Response-FullContact)=") in new stack
-- Executing [digium_phone_module@dpma_message_context:6] MessageSend("Message/ast_msg_queue", "sip:<phone NAT IP>:61596,proxy") in new stack
-- Executing [digium_phone_module@dpma_message_context:7] Hangup("Message/ast_msg_queue", "") in new stack
== Spawn extension (dpma_message_context, digium_phone_module, 7) exited non-zero on 'Message/ast_msg_queue'
Does the non-zero exit status have any negative effect? Could this be why the status icon is showing the yellow warning icon?
Thanks!
I’d venture that the custom hint that handles the presence for the device hasn’t been set. Try, from the Asterisk CLI:
presencestate change CustomPresence:101 AVAILABLE
where 101 represents the endpoint.
Thanks for the suggestion Malcolm! Unfortunately, that’s one of the first things I tried after googling the issue for a bit yesterday (I should have mentioned that). I can see the presence get updated properly when I change it on the phone, that status icon just never changes though.
Any other suggestions?
Long-press on the line indicator or check the nav drawer and make sure that registration is actually okay.
Check your config and make sure that you’re actually subscribing for presence in the phone’s account definition.
Watch the SIP traffic on startup to see what the phone’s subscribing for and what Asterisk is doing.
Double-check that the presence was set, via the Asterisk CLI presensestate command.
Make sure you have res_pjsip_pidf_digium_body_supplement.so loaded.
Make sure you’re not doing something strange with modules.conf, like trying to handload all of the modules, and thus hitting some strange edge case or race.
We don’t test chan_sip. We don’t test Asterisk older than 13.
If you’re doing something complex with endpoint, aor, phone type, and line type naming, try simplifying things (everyone gets “101”!) to tease out an edge issue.
Make sure your DPMA version is current.
The phone is registering in OK and can make and receive calls, view visual voicemail, etc.
I’m not exactly sure where in the config I would verify if I’m subscribing to presence (configs below).
When I select a new status on the phone, the presence is properly updated:
--- Name: 'CustomPresence:1234'
--- State: 'available' (this part changes depending on what status I last selected on the phone)
--- Subtype: ''
--- Message: ''
--- Base64 Encoded: 'No'
---
res_pjsip_pidf_digium_body_supplement.so is loaded fine, no errors.
The modules.conf file blacklists a few modules, but nothing that I think should be related to this:
noload => pbx_gtkconsole.so
noload => chan_alsa.so
noload => chan_oss.so
noload => chan_console.so
noload => chan_mgcp.so
noload => app_minivm.so
noload => chan_ooh323.so
noload => res_config_ldap.so
noload => cdr_sqlite3_custom.so
I don’t think anything is complex in my configs, not sure what I could simplify. I realize you don’t test with chan_sip, which is what we’re using, but I’ll provide my configs below in case anything stands out:
sip.conf:
[1234]
username=1234
type=friend
secret=abc123
record_out=On-Demand
record_in=On-Demand
qualify=yes
port=5060
nat=force_rport,comedia
mailbox=1234@COMPANY
host=dynamic
dtmfmode=rfc2833
context=from-company-internal
directmedia=no
callerid="John Doe" <1234>
accountcode=COMPANY
trustrpid=no
sendrpid=no
callcounter=yes
allowsubscribe=yes
res_digium_phone.conf:
[general]
globalpin=123456
userlist_auth=globalpin
config_auth=mac
[network1]
type=network
cidr=0.0.0.0/0
registration_address=pbx.company.com
registration_port=5060
transport=udp
file_url_prefix=http://pbx.company.com/digium_phones_files
[phone1]
type=phone
network=network1
mac=000fd3123456
line=1234
full_name=John Doe
timezone=America/New_York
contact=contacts.xml
blf_contact_group=Company Directory
can_forward_calls=yes
record_own_calls=yes
d80_logo_file=d80_logo.png
[1234]
type=line
mailbox=1234@COMPANY