Missed calls on Yealink

Hi guys

I ve configured a ring group and when a phone picks up, the call must be displayed as a missed call on the other phones. It sems to be possible on Yealink by setting the cancel message : if its reason is not empty, the call should be considered as missed

Do you know how I could configure the CANCEL message please?


The Yealink board might be a better place. On the other hand, the default behavior of the Yealink phones looks fine to me.


no, according to yealink support, it can’t be handle by the phone, the only solution is the CANCEL setup

That is what the c option is for in Dial()


c - If the Dial() application cancels this call, always set HANGUPCAUSE to ‘answered elsewhere’

I think he want’s the default behavior of dial so that he gets a missed call on the other phones in the dial group.

yes you re right, I need to do the contrary of the c option

Show either the sip debug or the pjsip logger output for a call to this ring group that shows the CANCELs to the devices that don’t answer. Is the Reason header set in those? Also show the Dial() command you are using.

Dial group is FreePBX terminology, so the OP may not be explicitly calling Dial, at all.


here are the informations you asked


<— SIP read from UDP: —>
INVITE sip:102@;transport=UDP SIP/2.0
Via: SIP/2.0/UDP;branch=z9hG4bK-524287-1—a9c6dc971555df29;rport
Max-Forwards: 70
Contact: sip:00030102@;transport=UDP
To: sip:102@;transport=UDP
From: sip:00030102@;transport=UDP;tag=3b0d8e49
Call-ID: jSThHkGuy4KzIwxge9O0bA…
Content-Type: application/sdp
User-Agent: Z 5.2.14 rv2.8.88
Allow-Events: presence, kpml, talk
Content-Length: 594

o=Z 0 0 IN IP4
c=IN IP4
t=0 0
m=audio 8000 RTP/AVP 106 9 3 111 0 8 97 110 112 98 101 100 99 102
a=rtpmap:106 opus/48000/2
a=fmtp:106 minptime=20; cbr=1; maxaveragebitrate=40000; useinbandfec=1
a=rtpmap:111 speex/16000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=20
a=rtpmap:110 speex/8000
a=rtpmap:112 speex/32000
a=rtpmap:98 telephone-event/48000
a=fmtp:98 0-16
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=rtpmap:100 telephone-event/16000
a=fmtp:100 0-16
a=rtpmap:99 telephone-event/32000
a=fmtp:99 0-16
a=rtpmap:102 G726-32/8000
— (13 headers 23 lines) —
Sending to (no NAT)
Sending to (no NAT)
Using INVITE request as basis request - jSThHkGuy4KzIwxge9O0bA…
Found peer ‘00030102’ for ‘00030102’ from


<— SIP read from UDP: —>
CANCEL sip:102@;transport=UDP SIP/2.0
Via: SIP/2.0/UDP;branch=z9hG4bK-524287-1—1a4091e7ee47f3af;rport
Max-Forwards: 70
To: sip:102@;transport=UDP
From: sip:00030102@;transport=UDP;tag=3b0d8e49
Call-ID: jSThHkGuy4KzIwxge9O0bA…
User-Agent: Z 5.2.14 rv2.8.88
Authorization: Digest username=“00030102”,realm=“asterisk”,nonce=“64e5b0e9”,uri="sip:102@;transport=UDP",response=“97b60e979ca2ab7a5e08312bc257848a”,algorithm=MD5
Content-Length: 0


exten => 00030500,1,Noop()
same => n,Set(CALLERID(name)=${CALLERID(num)} => groupe)
same => n, Dial(SIP/00030100&SIP/00030102&SIP/00030101,200,r)
same => n,hangup()

What product are you using? This isn’t an INVITE from Asterisk.

No, that is an INVITE into Asterisk as I asked for a debug of a call that would traverse the Ring Group. So that’s not coming internally. This isn’t a full debug clearly as it doesn’t show all the transactions for all the devices. This is just the initial INVITE and a CANCEL to one of the devices that didn’t answer the call.

OK so this is what it looks like and the phone doesn’t log this as missed correct?

Now take that and do Dial(SIP/00030100&SIP/00030102&SIP/00030101,200,rc) < Note the c option.

Do the test again and show the new CANCEL and confirm the results on the phone.

The CANCEL is not from Asterisk, either!

Yeah, I didn’t catch that right away last night. So the debug output was garbage.

hi guys

I could make a capture of the CANCEL (see below). If I want to solve my problem, I need to remove the Reason header that indicates the call has completed elesewhere. Is there a way to do that with asterisk?

Message Header
Via: SIP/2.0/UDP;branch=z9hG4bK65af79e2
Transport: UDP
Sent-by Address:
Sent-by port: 5060
Branch: z9hG4bK65af79e2
Max-Forwards: 70
From: “200 => groupe” sip:200@;tag=as3d57ef41
SIP Display info: “200 => groupe”
SIP from address: sip:200@
SIP from address User Part: 200
SIP from address Host Part:
SIP from tag: as3d57ef41
To: sip:00030101@
SIP to address: sip:00030101@
SIP to address User Part: 00030101
SIP to address Host Part:
SIP to address Host Port: 5060
Call-ID: 7568b5c343afbe33726ab69331abda30@
[Generated Call-ID: 7568b5c343afbe33726ab69331abda30@]
CSeq: 102 CANCEL
Sequence Number: 102
Method: CANCEL
User-Agent: Asterisk PBX 14.7.6
Reason: SIP;cause=200;text=“Call completed elsewhere”
Reason protocols: SIP
Cause: OK (200)
Text: Call completed elsewhere
Content-Length: 0


anyone to help me removing the header “Reason” on CANCEL please :

The incoming call was send to a couple of phones, probably a dialgroup. If one of them answers, the other ones get this message.

Initially all phones in the dialgroup are invited to the party, but then the call was cancelled for those who didn’t answer. The reason header tells the reason. Normally, phones evaluate the reason header and they do not add the initial attempt to the missed calls list.

You may not want to remove the header as the message makes sense. There maybe other reasons, that cause sleepless nights…

I may have misunderstood the intentions of your post. I think the Yealink phones have options do count or not and/or display certain messages like missed calls, etc.

I’ve finally found a “dirty” way to resolve this issue : I make the group ring for 1 second and I make another Dial on it, so the call appears on all phones as missed

this is not very conventional way to proceed but my client is satisfied…


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.