Description

It doesn't look like the "pua_dialoginfo" module has support for the "display" attribute in the identity tag. This tag is used by some phones to update the phone display with caller/callee information for the respective key. I'm wondering how difficult it would be to add this feature. Thanks in advance for anyone who reads this!

Expected behavior

Kamailio includes display attribute in identity tags in generated publish messages.

  <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"  version="1" state="full">  
    <dialog id="as7d900as8"  call-id="a84b4c76e66710"  local-tag="1928301774" remote-tag="456887766" direction="initiator">     
    <state>early</state>
        <local>
            <identity display="Alice">sip:alice@example.com</identity>
            <target uri="sip:alice@phone11.example.com"/>
        </local>
        <remote>
            <identity display="Bob">sip:bob@example.org</identity>
            <target uri="sip:bobster@phone21.example.org"/>
        </remote>
    </dialog>  
  </dialog-info>

Actual observed behavior

Kamailio generates a publish request for dialog events similar to the one below. The display attribute is not included in the "identity" tags. This means that when a notify message is sent to a watcher for this publish, the name is not rendered on the phone display.

  <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"  version="1" state="full">  
    <dialog id="as7d900as8"  call-id="a84b4c76e66710"  local-tag="1928301774" remote-tag="456887766" direction="initiator">     
    <state>early</state>
        <local>
            <identity>sip:alice@example.com</identity>
            <target uri="sip:alice@phone11.example.com"/>
        </local>
        <remote>
            <identity>sip:bob@example.org</identity>
            <target uri="sip:bobster@phone21.example.org"/>
        </remote>
    </dialog>  
  </dialog-info>

Possible Solutions

I added a small modification to the module as a POC and it works as expected. With the following modification, the phone display is updated with the string in the “display” attribute. I added line 191-193 below, between lines 190 & 191 on the current master branch. The example below shows the “remote” tag, I also did the same thing for the local tag a few more lines down.

     184                  tag_node = xmlNewChild(remote_node, NULL, BAD_CAST "identity",  
     185                                  BAD_CAST buf) ;  
     186                  if( tag_node ==NULL)  
     187                  {  
     188                          LM_ERR("while adding childn");
     189                          goto error;
     190                  }
     191                  /* Testing - adding display attribute to the identity tag */
     192                  xmlNewProp(tag_node, BAD_CAST "display", BAD_CAST "RemoteCallerName");
     193                  /* */
     195
     196                  tag_node = xmlNewChild(remote_node, NULL, BAD_CAST "target", NULL);
     197                  if( tag_node ==NULL)

Here is a link to the file in the module I’m referring to:
https://github.com/kamailio/kamailio/blob/master/src/modules/pua_dialoginfo/dialog_publish.c

I don’t really have any professional experience writing C code, and I was unable to identify a way to grab this string from the “From” header. Unfortunately, because I would have really loved to give this feature back to the community!

Additional Information

Thank you so much for this amazing software. I absolutely adore Kamailio! If someone is interested in this, please let me know if there is anything I can do to help.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.