[Home]

Summary:ASTERISK-14897: Explicitly set CallerID is lost
Reporter:Dmitry Andrianov (dimas)Labels:
Date Opened:2009-09-28 05:20:11Date Closed:2011-06-07 14:07:21
Priority:MinorRegression?No
Status:Closed/CompleteComponents:PBX/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:I have reported this to asterisk-dev mailing list but got no feedback. Since I think it is a bug, I'm filling the issue on Mantis.

I have simple test context like:

context c1 {

       user => {
               Dial(SIP/1001,10);
       };

       conf => {
               CALLERID(num) = "9999";
               CALLERID(name) = "Test name";
               MeetMe(1234,d);
       };
}

Note that I set CallerID explicitly before joining meetme. I originate call using CLI:

originate Local/user@c1 extension conf@c1

answer the call on 1001 softphone. I expect to see 9999 'Test name' in the meetme. However:

*CLI> meetme list 1234
User #: 01         user <no name>            Channel: SIP/1001-09abf998    (unmonitored) 00:00:24
1 users in that conference.

Note the callerid is lost. After adding some debug information I found that inside MeetMe the callerid is correct right before ast_streamfile which plays  you are the only person in the conference  and incorrect right after that ast_streamfile. I do not really understand logic why this happens but it seems like bug to me.
Comments:By: Sean Bright (seanbright) 2009-09-30 11:17:52

What happens if you do this:
<pre>
   conf => {
       Answer();
       CALLERID(num) = "9999";
       CALLERID(name) = "Test name";
       MeetMe(1234,d);
   };
</pre>

By: Tilghman Lesher (tilghman) 2009-09-30 12:38:11

dimas:  This has to do with the optimization of the Local channel out of the bridge.  If you do:

originate Local/user@c1/n extension conf@c1

then it works the way that you expect.

seanbright:  That has no effect.

By: Tilghman Lesher (tilghman) 2009-09-30 12:55:52

However, if he modifies that to:

  conf => {
     Answer();
     Wait(1);
     CALLERID(num) = "9999";
     CALLERID(name) = "Test name";
     MeetMe(1234,d);
  };

that works, since it gives time for the masquerade to complete before setting the CallerID.

By: Tilghman Lesher (tilghman) 2009-09-30 12:56:46

Explanation and workarounds provided, so closing.