Module use_case_bridge_server

Use-Case-Bridge-Server is an example of a application which employs Idefisk as a interface to the Asterisk PBX.

Copyright © 2005-2006 Ericsson

Version: 1.0

Behaviour: gen_server.

Authors: Freek Sanders (freekisanders@gmail.com) [web site: http://www.freeksanders.tk].

Description

Use-Case-Bridge-Server is an example of a application which employs Idefisk as a interface to the Asterisk PBX. Use-Case-Bridge-Server is started by the Idefisk-Supervisor (see idefisk_supervisor) and communicates with a given Ext-Ast-Interface instance through its process id. Use-Case-Bridge-Server uses Use-Case-Call (see use_case_call) to keep an intern record of created calls, legs and resources, as well as to receive messages.

Use Case Actions

When Use-Case-Bridge-Server receives a incoming message from Idefisk, it starts a new SingleBridge (see use_case_single_bridge). This SingleBridge communicates with ExtENS, resulting in the creation of another SingleBridge. This new SingleBridge registers with Use-Case-Bridge-Server (see use_case_bridge_server:register_bridge/3. The server then creates a new leg, of which the id is send to the new SingleBridge. Then the new leg is routed. When a 'answer' is received from Asterisk, the SingleBridge is alerted. The SingleBridge then contacts ExtENS to pass the 'answer' message. Meanwhile, the new leg is attached. ExtENS passes the 'answer' message to the original SingleBridge, which passes it to the Use-Case-Bridge-Server. The server then attaches the original leg, after which conversation can start.

When one party (i.e. leg) hangs up, the SingleBridge is alerted, and passes the message to ExtENS. ExtENS then alerts the other SingleBridge, which in turn passes the message to Use-Case-Bridge-Server. At receiving the message, Use-Case-Bridge-Server hangs up the remaining leg.


idefisk.conf Configuration

Set asterisk_ext_module to 'use_case_bridge_server' : {asterisk_ext_module, use_case_bridge_server}
Set asterisk_ext_module_start to 'true' : {asterisk_ext_module_start, true}
Set asterisk_ext_module_args to the BridgeServer : {asterisk_ext_module_args, [BridgeServerArgs::bridge_server_args()]}


(see the type definitions below)
More info about the format:
MORE INFO, I.E.:

StartId is where the id of the place where the Bridge-Server begins.
This can be a integer, atom or string.


Final Note

Use-Case-Bridge-Server has been implemented using the gen-server behaviour. This means that all function calls returning 'ok' (see below) are gen_server casts, which carry out their function asynchronously. An 'ok' does not mean success. If a function has success or not can only be derived from side-effects and messages printed to the command line.

For more information about the flow of events and an explanation of terms see ext_ast_interface.

Function Index

die/0Destroys the use case.

Function Details

die/0

die() -> ok

Destroys the use case.

Introduced in: 1.0