[Freeswitch-users] ESL socket outbound in C++
Michael Collins
msc at freeswitch.org
Sat Feb 19 04:27:26 MSK 2011
We appreciate you sharing! Feel free to add this to the wiki as well.
-MC
On Fri, Feb 18, 2011 at 8:25 AM, Stephen Wilde <wstephen80 at gmail.com> wrote:
> I'm learning to use ESL in C++ to do a call control and I want to share my
> code with the community.
>
> I had a little difficult at startup so I hope that this code can help
> someone.
>
> The code is: http://pastebin.freeswitch.org/15418
>
> Using "esl_oop" module, I have implemented a basic ESL Channel class (that
> can be extended) so the "main" event handling loop can be very simple, for
> example for an unuseful esl bridge application, can be:
>
> ESLchannel legA(&connection, inbound_uuid);
>
> ESLchannel legB(&connection);
> legB.Originate(dialstring)
>
> while (1)
> {
> ESLevent * event = connection.recvEventTimed(1000);
>
> if (event)
> {
> const char * ename = event->getHeader("Event-Name");
> const char * event_uuid = event->getHeader("unique-id");
>
> // It's an event for LegB ?
> //-------------------------
> if (legB.Uuid() == event_uuid)
> {
> if (!strcmp(ename, "CHANNEL_PROGRESS_MEDIA"))
> {
> legA.PreAnswer();
> legA.BridgeTo(legB);
> }
> else if (!strcmp(ename, "CHANNEL_ANSWER"))
> {
> legA.Answer();
> legA.BridgeTo(legB);
> }
> else if (!strcmp(ename,"CHANNEL_HANGUP"))
> {
> const char * cause = event->getHeader("Hangup-Cause");
>
> legA.Hangup(cause);
> }
> }
> // It's an event for LegA ?
> //-------------------------
> else if (legA.Uuid() == event_uuid)
> {
> if (!strcmp(ename,"CHANNEL_HANGUP"))
> {
> const char * cause = event->getHeader("Hangup-Cause");
>
> legB.Hangup(cause);
> }
> }
>
> delete event;
> }
> }
>
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20110218/b1a01347/attachment-0001.html
More information about the FreeSWITCH-users
mailing list