[asterisk-dev] [Code Review] New application JabberReceive, implement SendText in chan_gtalk and chan_jingle

Tilghman Lesher tlesher at digium.com
Sun Sep 13 17:16:59 CDT 2009



> On 2009-09-13 15:33:17, Philippe Sultan wrote:
> > /trunk/res/res_jabber.c, line 1940
> > <https://reviewboard.asterisk.org/r/88/diff/7/?file=6375#file6375line1940>
> >
> >     Since more than one thread can wait for the condition to be signalled, I wonder if we should call ast_cond_broadcast here instead.
> >     
> >     Indeed, the calling threads parse the whole messages list to retrieve the one they're waiting for (in acf_jabberreceive_read), so broadcasting the condition seems reasonable here.
> >     
> >     I need to have a reviewer's advice here!

Yes, a broadcast is a much more reasonable action, although I think the likelihood of more than one thread waiting on the condition at the same time (given the shortness of the timeout and that you'll broadcast on every receive) is only possible on a very busy system.  But you're right, a broadcast is what you want.


- Tilghman


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/88/#review1064
-----------------------------------------------------------


On 2009-09-12 17:03:18, Philippe Sultan wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/88/
> -----------------------------------------------------------
> 
> (Updated 2009-09-12 17:03:18)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Summary
> -------
> 
> JabberReceive is a dialplan application that makes Asterisk wait for an XMPP message from a given user (identified with his JID), and store the content in a dialplan variable.
> 
> It can be used for example to notify a user (via XMPP) that a call is coming, and read input back from him.
> Taken from the documentation :
> In the following example, calls targeted to extension 1234 (be it 
> accessed from SIP, DAHDI or whatever channel type) are controlled by
> user bob at jabber.org. Asterisk notifies him that a call is coming, and
> asks him to take an action. This dialog takes place over an XMPP chat.
> 
> context from-ext {
> 	1234 => {
> 		Answer();
> 		JabberSend(asterisk-xmpp,bob at jabber.org,Call from $CALLERID(num) - choose an option to process the call);
> 		JabberSend(asterisk-xmpp,bob at jabber.org,1 : forward to cellphone);
> 		JabberSend(asterisk-xmpp,bob at jabber.org,2 : forward to work phone);
> 		JabberSend(asterisk-xmpp,bob at jabber.org,Default action : forward to your voicemail);
> 		JabberReceive(bob at jabber.org,OPTION,20);
> 		switch (${OPTION}) {
> 			case 1:
> 	  			JabberSend(asterisk-xmpp,bob at jabber.org,(Calling cellphone...);
> 				Dial(SIP/987654321);
> 				break;
> 			case 2:
> 				JabberSend(asterisk-xmpp,bob at jabber.org,(Calling workphone...);
> 				Dial(SIP/${EXTEN});
> 				break;
> 			default:
> 				Voicemail(${EXTEN}|u)
> 		}
> 	}
> }
> 
> The diff also includes an implementation of SendText as XMPP messages in both chan_jingle and chan_gtalk.
> 
> The corresponding bug contains more use cases : http://bugs.digium.com/view.php?id=12569
> 
> 
> This addresses bug 12569.
>     https://issues.asterisk.org/view.php?id=12569
> 
> 
> Diffs
> -----
> 
>   /trunk/CHANGES 218149 
>   /trunk/channels/chan_gtalk.c 218149 
>   /trunk/channels/chan_jingle.c 218149 
>   /trunk/configs/jabber.conf.sample 218149 
>   /trunk/doc/jabber.txt 218149 
>   /trunk/include/asterisk/jabber.h 218149 
>   /trunk/res/res_jabber.c 218149 
> 
> Diff: https://reviewboard.asterisk.org/r/88/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Philippe
> 
>




More information about the asterisk-dev mailing list