Experience on FreeSWITCH          Seven Du
About me• Seven Du - seven - 7 - Du Jinfang -• 7+ years of PSTN, from 2001• 3+ years of FS and Erlang - from 2008• Created...
Agenda• Work at the past• Talking to the web• Manage on web - the GUI• SIP tracing• FreeSWITCH in China
Past• China Telecom/Netcom, PSTN• Idapted, EQEnglish• Student (CN) ----- FS ---- Teacher (US)• Problem: SIP/RTP traffic cro...
fsm_ivr• Written in Erlang using gen_fsm• Like plivo but simpler• Since it’s simple we don’t have a client  library like p...
http://localhost/ivr.txtanswerplay welcome.wavread please-input-a-number.wavnext ivr.php
read please-input-a-number.wavnext ivr.php          http://localhost/ivr.php          set bridge_url=http://.....         ...
Simplified & Enenced API• play file.wav• play file1.wav file2.wav file3.wav• play file_string://file1.wav!file2.wav!file3.wav      ...
Well configured default values to make API as   simple as it can be• read file.wav• read file.wav max• read file min max• read...
Callbacks                         • set bridge_url=/call_bridged                         • set hangup_url=/call_hangupMacr...
Compatibal with FS APIs                 It has to be !
Outbound (REST)curl -d "number=1001&ivr_dest=7000&callback=http://localhost:3000/blah" localhost:8765/api/make_call• {"cod...
Real world use• calling card• crbt - Color Ring Back Tone• universal number• universal messaging• (not yet opensourced)
Managing on web - the GUI  • Why re-invent the wheel?
We use ...• mod_xml_curl• websocket (via socket.IO)• Ruby/Rails for GUI• Erlang as a middleware• RabbitMQ for messaging
• ajax pooling
• ajax pooling• websocket/socket.IO
• Connected websocket• Agent 1000 registered and Ready!
• H/h = Hear/UnHear S/s = Speak/UnSpeak
SIP trace (Tracking 2+ legs)  • simply TPORT_LOG (Homer ?)  • custom header x_interaction
FreeSWITCH in China• 103 members in FreeSWITCH-CN google  groups• 175 members on QQ•-• China has1,339,724,852 People in 20...
SIP/VoIP in China• Backbone/Core switching in telecom carries already  IPlized• Only legal (Experimental) in certain citie...
FS Commercial support      in China       x-y-t.com
Thanks• about.me/dujinfang• dujinfang@gmail.com
Upcoming SlideShare
Loading in...5
×

Experience on-freeswitch-cluecon2011

1,593

Published on

Speech at ClueCon about Seven's FreeSWITCH experience

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,593
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Experience on-freeswitch-cluecon2011

    1. 1. Experience on FreeSWITCH Seven Du
    2. 2. About me• Seven Du - seven - 7 - Du Jinfang -• 7+ years of PSTN, from 2001• 3+ years of FS and Erlang - from 2008• Created www.freeswitch.org.cn at 2009• about.me/dujinfang dujinfang@gmail.com
    3. 3. Agenda• Work at the past• Talking to the web• Manage on web - the GUI• SIP tracing• FreeSWITCH in China
    4. 4. Past• China Telecom/Netcom, PSTN• Idapted, EQEnglish• Student (CN) ----- FS ---- Teacher (US)• Problem: SIP/RTP traffic cross the ocean• sofia, skypopen, dingaling
    5. 5. fsm_ivr• Written in Erlang using gen_fsm• Like plivo but simpler• Since it’s simple we don’t have a client library like plivo, plain text only
    6. 6. http://localhost/ivr.txtanswerplay welcome.wavread please-input-a-number.wavnext ivr.php
    7. 7. read please-input-a-number.wavnext ivr.php http://localhost/ivr.php set bridge_url=http://..... play calling.wav <?php $dtmf = $_GET[‘dtmf’]; echo “say_digits $dtmf”; echo “bridge $dtmf”; echo “next /blah......”; ?>
    8. 8. Simplified & Enenced API• play file.wav• play file1.wav file2.wav file3.wav• play file_string://file1.wav!file2.wav!file3.wav • say_digits 1234 • say_digits 1234 zh • say_number 1234.56
    9. 9. Well configured default values to make API as simple as it can be• read file.wav• read file.wav max• read file min max• read file min max term• read file min max term timeout
    10. 10. Callbacks • set bridge_url=/call_bridged • set hangup_url=/call_hangupMacros• ola://BEEP• read file_string://record-after-beep.wav!ola://BEEP
    11. 11. Compatibal with FS APIs It has to be !
    12. 12. Outbound (REST)curl -d "number=1001&ivr_dest=7000&callback=http://localhost:3000/blah" localhost:8765/api/make_call• {"code":"200", "job_id":"4f7fdca6-9a9f-11e0-b28e- a342d0897a44"}• {"code":"702", "error_text":"no trunk available"}
    13. 13. Real world use• calling card• crbt - Color Ring Back Tone• universal number• universal messaging• (not yet opensourced)
    14. 14. Managing on web - the GUI • Why re-invent the wheel?
    15. 15. We use ...• mod_xml_curl• websocket (via socket.IO)• Ruby/Rails for GUI• Erlang as a middleware• RabbitMQ for messaging
    16. 16. • ajax pooling
    17. 17. • ajax pooling• websocket/socket.IO
    18. 18. • Connected websocket• Agent 1000 registered and Ready!
    19. 19. • H/h = Hear/UnHear S/s = Speak/UnSpeak
    20. 20. SIP trace (Tracking 2+ legs) • simply TPORT_LOG (Homer ?) • custom header x_interaction
    21. 21. FreeSWITCH in China• 103 members in FreeSWITCH-CN google groups• 175 members on QQ•-• China has1,339,724,852 People in 2010 not including Hongkong, Macao and Taiwan
    22. 22. SIP/VoIP in China• Backbone/Core switching in telecom carries already IPlized• Only legal (Experimental) in certain cities• Cisco/Avaya for commercial enterprise internal use• Asterisk based products mainly selling cards - openvox Digium Samgoma etc.• FS Community members from small(like me) and big tech companies (Huawei/Alibaba...), and they from assurances, petro, government even military
    23. 23. FS Commercial support in China x-y-t.com
    24. 24. Thanks• about.me/dujinfang• dujinfang@gmail.com

    ×