Programmer's guide
(→Javascript) |
|||
(53 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
+ | Yate has 3 major API's to build applications on top of it: C API, Javascript and extmodule (you can use your favorite language like PHP, Python, Ruby, Lisp). | ||
− | + | But all Yate API's are quite unified, so all Yate design pages, apply to all API's. Enjoy. | |
− | + | ||
− | + | == About Yate design and implementation == | |
− | + | ||
− | + | {|class="yate-table" | |
− | + | |class="yate-header-right"|Yate for programmers | |
− | + | |- | |
− | + | |class="yate-content-right"| | |
− | + | * [[Yate Design]] | |
− | + | Yate arhitecture and design. | |
− | + | * [http://yate.null.ro/docs/ Yate C++ API] | |
− | + | Documentation for Yate C++ API | |
− | + | ||
− | + | * [[Messages]] | |
− | + | Components of messages and how messages are processed by messages handlers. | |
− | + | ||
− | + | {|class="yate-subtable" | |
− | + | |- | |
− | + | |class="yate-page-subtitle"| | |
− | + | * [[Standard Messages]] | |
− | + | All standard messages in Yate. | |
− | + | * [[Message Flows]] | |
− | + | Flow messages for an incoming call. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|} | |} | ||
+ | |||
+ | * [[Coding style]] | ||
+ | Rules for coding Yate | ||
+ | |||
+ | * [[Mutexes and locking]] | ||
+ | Yate's implementation provides classes for mutual exclusion and locking. | ||
+ | {|class="yate-subtable" | ||
+ | |- | ||
+ | |class="yate-page-subtitle"| | ||
+ | * [[Locking Issues]] | ||
+ | Provide an overview of problems caused by improper locking and how to troubleshoot them. | ||
+ | * [[Important Mutexes]] | ||
+ | Some noteworthy mutexes that have program-wide implications in Yate code. | ||
+ | |} | ||
+ | * [[YIAX design]] | ||
+ | YIAX library in Yate. | ||
+ | |} | ||
+ | |||
+ | ==Scripting languages supported by Yate == | ||
+ | |||
+ | === Javascript === | ||
+ | |||
+ | {|class="yate-table" | ||
+ | |||
+ | |class="yate-header-right"|Yate for programmers | ||
+ | |- | ||
+ | |class="yate-content-right"| | ||
+ | |||
+ | * [[Javascript]] | ||
+ | Yate offers a embedded Javascript implementation. | ||
+ | |||
+ | {|"yate-subtable" | ||
+ | |- | ||
+ | |class="yate-page-subtitle"| | ||
+ | * [[Javascript module]] | ||
+ | Configuring Javascript module to use routing or global scripts. | ||
+ | * [[Including other files]] | ||
+ | Language extensions for including other files and libraries. | ||
+ | * [[Constructors and prototypes]] | ||
+ | Object construction and prototypal inheritance in Javascript. | ||
+ | * [[Messages in JS]] | ||
+ | Messages in JavaScript | ||
+ | * [[Time events in Javascript]] | ||
+ | Describes implemented methods that process actions in certain time intervals. | ||
+ | * [[Sharing data in Javascript]] | ||
+ | Methods of sharing data between different Javascript instances. | ||
+ | * [[How to do routing using javascript]] | ||
+ | Routing rules written in a script using Yate's Javascript module. | ||
+ | * [[How to access a database from Yate's Javascript module]] | ||
+ | Accessing the database from javascript module. | ||
+ | |} | ||
+ | |||
+ | |} | ||
+ | |||
+ | === PHP === | ||
+ | |||
+ | {|class="yate-table" | ||
+ | |||
+ | |class="yate-header-right"|Yate for programmers | ||
+ | |- | ||
+ | |class="yate-content-right"| | ||
+ | * [[Yate's PHP library]] | ||
+ | The library used by PHP to comunicate with Yate. | ||
+ | {|"yate-subtable" | ||
+ | |- | ||
+ | |class="yate-page-subtitle"| | ||
+ | *[[IVR Setup]] | ||
+ | How to setup an IVR in Yate. | ||
+ | * [[Writing an IVR]] | ||
+ | How to write an IVR. | ||
+ | * [[Using Yate's PHP library on windows]] | ||
+ | Test an existing PHP script on Windows. | ||
+ | * [[How To For External Modules In Telnet]] | ||
+ | Test an existing PHP script on Windows. | ||
+ | |} | ||
+ | |} | ||
+ | |||
+ | ===Python=== | ||
+ | |||
+ | {|class="yate-table" | ||
+ | |||
+ | |class="yate-header-right"|Yate for programmers | ||
+ | |- | ||
+ | |class="yate-content-right"| | ||
+ | * [[YAYPM|YAYPM Yet Another Yate Python Module]] | ||
+ | The library used by Python Module to comunicate with Yate. | ||
+ | {|"yate-subtable" | ||
+ | |- | ||
+ | |class="yate-page-subtitle"| | ||
+ | * [[YAYPM:Simple IVR]] | ||
+ | How to write a simple IVR in Yate. | ||
+ | * [[YAYPM:Simple IVR with Inline Callbacks]] | ||
+ | How to write a simple IVR with Inline Callbacks in Yate. | ||
+ | * [[YAYPM:Bridge and then unbridge]] | ||
+ | How to bridge and then unbridge. | ||
+ | * [[YAYPM:Bridge and then redirect after a hangup]] | ||
+ | How to bridge and then redirect after a hangup | ||
+ | * [[YAYPM_Installation_on_windows|Using YAYPM on windows]] | ||
+ | How to install YAYPM on Windows. | ||
+ | |} | ||
+ | |} | ||
+ | |||
+ | ==Debugging == | ||
+ | |||
+ | {|class="yate-table" | ||
+ | |||
+ | |class="yate-header-right"|Yate for programmers | ||
+ | |- | ||
+ | |class="yate-content-right"| | ||
+ | |||
+ | * [[Debugging in Yate]] | ||
+ | How to debug in Yate. | ||
+ | {|"yate-subtable" | ||
+ | |- | ||
+ | |class="yate-page-subtitle"| | ||
+ | |||
+ | * [[Debug Output]] | ||
+ | How to enable debug in Yate. | ||
+ | * [[Debugging and, or Investigation of messages]] | ||
+ | You can use the msgsniff module to investigate the messages in yate. | ||
+ | |} | ||
+ | |} | ||
+ | |||
+ | |||
+ | '''See also''' | ||
+ | |||
+ | * [[Telephony]] | ||
+ | |||
+ | [[Category:Programmers]] [[Category:Javascript]] [[Category:IVR]] [[Category:Messages]] [[Category:Debug]] |
Latest revision as of 11:01, 10 March 2016
Yate has 3 major API's to build applications on top of it: C API, Javascript and extmodule (you can use your favorite language like PHP, Python, Ruby, Lisp).
But all Yate API's are quite unified, so all Yate design pages, apply to all API's. Enjoy.
Contents |
[edit] About Yate design and implementation
Yate for programmers | ||
Yate arhitecture and design. Documentation for Yate C++ API Components of messages and how messages are processed by messages handlers.
Rules for coding Yate Yate's implementation provides classes for mutual exclusion and locking.
YIAX library in Yate. |
[edit] Scripting languages supported by Yate
[edit] Javascript
Yate for programmers | |
Yate offers a embedded Javascript implementation.
|
[edit] PHP
Yate for programmers | |
The library used by PHP to comunicate with Yate.
|
[edit] Python
Yate for programmers | |
The library used by Python Module to comunicate with Yate.
|
[edit] Debugging
Yate for programmers | |
How to debug in Yate.
|
See also