[asterisk-dev] PJSIP Dialog-Info+XML enhancement

Hans-Peter Jansen hpj at urpla.net
Wed Nov 14 10:01:20 CST 2018


[Sorry for resending, but I have to in order to conform to the CLA]

@Joshua: now that I signed the CLA, may I kindly ask you to look at the code 
now? Ideas, where/how to get/synthesize call-id, local-tag and remote-tag 
attributes and the caller info in PJSIP land are appreciated.

@everyone: this is an attempt to implement Dialog-Info+XML for PJSIP to get on 
par with chan_sip. It will allow subscribed SNOM phones to display the caller  
to some monitored extensions and to pick that call up by pressing the 
corresponding function key without distributing the call in call groups. In 
Asterisk 1.2 times, this was implemented by the bristuff patches. chan_sip of 
current Asterisk versions support this feature out of the box.

On Montag, 29. Oktober 2018 13:56:17 Joshua C. Colp wrote:
> On Mon, Oct 29, 2018, at 1:47 PM, Hans-Peter Jansen wrote:
> > Dear Asterisk developers,
> > 
> > in an attempt to add the missing pieces in
> > res/res_pjsip_dialog_info_body_generator.c to provide a similar
> > Dialog-Info+XML implementation, as what chan_sip.so provides already,
> > I invested the better part of today, but things seem to be much more
> > complicated in PJSIP land (at least for somebody, who started to look
> > at this code today).
> > 
> > This is the only missing functionality, that keeps me from transitioning
> > to PJSIP, and, if I read the various related complains correctly, a lot of
> > other Asterisk users as well.
> > 
> > What I found out so far:
> > 
> > PJSIP version:
> > 
> > <?xml version="1.0" encoding="UTF-8"?>
> > <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="3"
> > state="full" entity="sip:62 at 192.168.23.2:15060">
> > 
> >   <dialog id="62" direction="recipient">
> >   
> >    <state>early</state>
> >   
> >   </dialog>
> >  
> >  </dialog-info>
> 
> The information does not currently exist in PJSIP, 'nor does it get passed
> in. The chan_sip module has special logic (find_ringing_channel) local to
> it to gather the information it thinks is correct which is then placed into
> the message. The same kind of thing would need to be done in PJSIP.

First of all, thanks for your instant response, Joshua.

Here's, where I got with some hackery today (attached):

<?xml version="1.0" encoding="UTF-8"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="1" 
state="full" entity="sip:62 at 192.168.23.2:15060">
 <dialog id="62" direction="recipient">
  <remote>
   <identity display>sip:000413414123 at 192.168.23.2</identity>
   <target uri="sip:000413414123 at 192.168.23.2" />
  </remote>
  <local>
   <identity display="hp Office 2">sip:62 at 192.168.23.2:15060</identity>
   <target uri="sip:62 at 192.168.23.2:15060" />
  </local>
  <state>early</state>
 </dialog>
</dialog-info>

Remote is still wrong, it's a local extension, and I also have no idea ATM, 
where to fetch call-id, local-tag and remote-tag attributes. It also makes
asterisk not to exit gracefully anymore after hitting ^C.

May I kindly ask you to take a look at it?

The phones start to display the calls (wrong) info (hooray), but the phone's 
state (blinking light) persist after call termination, and even after asterisk 
exit...

Thanks in advance,
Pete
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pjsip-improve-dialog-info+xml.diff
Type: text/x-patch
Size: 4044 bytes
Desc: not available
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20181114/4b7a5797/attachment.bin>


More information about the asterisk-dev mailing list