[asterisk-dev] pseudo channel

john at spectross.com john at spectross.com
Sat Mar 21 02:09:11 CDT 2009


Hi Russell,

Thanks for the reply.
__________        ____________         _________
|                   |       |                        |       | 
|
|        A        |       |           B           |       |       C        |
|  (Phy. Ch.) |       |     (Phy. Ch.)   |        | (Phy. Ch.) |
|_________ |       |____________|       |_________|
          |                    |                  |                    |
    SUB_R         SUB_R     SUB_CW     SUB_R
          |                    |                  |                    |
    ___|___        ___|___      ___|____      ___|___
   |            |       |            |      |              |     | 
|
   | AC-R |---> | AC-R |      |AC-CW |<--|  AC-R |
   |______|       |______|      |_______|     |______|

The blocks named A, B & C are used to represent physical channels. The
blocks below represent
ast_channels (AC) corresponding to SUB_REAL (R) & SUB_CALLWAIT (CW)
sub-channels.

Could you please help me understand how could we generate a ring back tone
for 'C' by using an 'ioctl'
over the 'pseudo file decriptor' corresponding to 'SUB_CALLWAIT' of 'B'.

Well it could be possible after bridging but this case is pre-bridge i.e.
during ast_call (zt_call).

I also tried commenting this piece of code but saw no difference in the
behaviour of call-wait (i.e. RBT was always present).

After further investigation it seems that app_dial is the one responsible
for RBT generation to caller in all cases.

Plz. clarify.

Kindly also throw some light over reception of events over pseudo
file-descriptors corresponding to sub-channels.

Regds.
John

----- Original Message ----- 
From: <john at spectross.com>
To: "Russell Bryant" <russell at digium.com>; "Asterisk Developers Mailing 
List" <asterisk-dev at lists.digium.com>
Sent: Wednesday, March 18, 2009 9:36 PM
Subject: Re: [asterisk-dev] pseudo channel


> Hi Russell,
>
> Thanks for the reply.
> __________                 ________________                     __________
> |                    |                |                                | | 
> |
> |        A         |                |              B                | | 
> C         |
> |  (Phy. Ch.)  |                |        (Phy. Ch.)         | |  (Phy. 
> Ch.)  |
> |__________|                |________________| |__________|
>          |                               |                        | |
>  SUB_REAL          SUB_REAL   SUB_CALLWAIT         SUB_REAL
>          |                               |                        | |
>     ___|___                  ___|___            ___|___ ___|___
>     |            |                 |            |           | | 
> |            |
>     |AC-R  |-------- -> |AC-R  |           |AC-CW |<-----------| AC-R  |
>     |______|  app_dial  |______|           |_______|   app_dial   |______|
>
> The blocks named A, B & C are used to represent physical channels. The 
> blocks below represent
> ast_channels (AC) corresponding to SUB_REAL (R) & SUB_CALLWAIT (CW) 
> sub-channels.
>
> Could you please help me understand how could we generate a ring back tone 
> for 'C' by using an 'ioctl'
> over the 'pseudo file decriptor' corresponding to 'SUB_CALLWAIT' of 'B'.
>
> Well it could be possible after bridging but this case is pre-bridge i.e. 
> during ast_call (zt_call).
>
> I also tried commenting this piece of code but saw no difference in the 
> behaviour of call-wait (i.e. RBT was always present).
>
> After further investigation it seems that app_dial is the one responsible 
> for RBT generation to caller in all cases.
>
> Plz. clarify.
>
> Kindly also throw some light over reception of events over pseudo 
> file-descriptors corresponding to sub-channels.
>
> Regds.
> John
>
> ----- Original Message ----- 
> From: "Russell Bryant" <russell at digium.com>
> To: <john at spectross.com>; "Asterisk Developers Mailing List" 
> <asterisk-dev at lists.digium.com>
> Sent: Tuesday, March 17, 2009 10:21 PM
> Subject: Re: [asterisk-dev] pseudo channel
>
>
>> john at spectross.com wrote:
>>> /* Make ring-back */
>>> if (tone_zone_play_tone(p->subs[SUB_CALLWAIT].zfd, ZT_TONE_RINGTONE))
>>>  ast_log(LOG_WARNING, "Unable to generate call-wait ring-back on channel 
>>> %s\n", ast->name);
>>
>> If you read my previous reply, this piece of code will start to make 
>> sense.
>>
>> In this case, we're dealing with call waiting.  That means that there is 
>> an Asterisk channel already up and connected to SUB_REAL, which is the 
>> DAHDI channel associated with the physical interface.  Now, we have 
>> another call coming in destined for this interface.  We're going to go 
>> ahead and set up this call with a psuedo channel.  The piece of code you 
>> refer to tells DAHDI to send ring back to the caller.  Meanwhile, the 
>> DAHDI channel associated with the physical interface is hearing a call 
>> waiting beep.
>>
>> If this still isn't clear, I can try to draw up some ASCII art that 
>> demonstrates the audio flow here ...
>>
>> -- 
>> Russell Bryant
>> Digium, Inc. | Senior Software Engineer, Open Source Team Lead
>> 445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
>> Check us out at: www.digium.com & www.asterisk.org
> 




More information about the asterisk-dev mailing list