|This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007. In general any information should apply to LinuxMCE. However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.|
This one provides standard command interface for the PBX, theoretically it can be plugged with any PBX, not sure if it can be done.
It has a virtual device id = -107, this way all telecom commands from orbiter are sent to Telecom_Plugin, and then it routes commands to specific devices (like from Orbiter to child Embedded Phone) or to Asterisk.
It depends on command the sender and such parameters as device or channel_ids.
For example PL_Originatecalled with PK_Device==EmbeddedPhone will send CMD_Phone_Initiate to the device or CMD_PBX_Originate to asterisk. The transfer when the call is already a conference call will be simple joining into the conference room instead of a blind transfer and so on.
It also provides several DataGrids getting information from internal datastructures in case of ActiveCalls, pluto_main for SpeedDial and asteriskcdr for RecentCalls.
Communication with Asterisk
In most cases the Telecom_Plugin keeps almost the same list of channels as Asterisk. The Asterisk is notifying Telecom_Plugin on all changes and they keep the list in sync.
In most of the commands(and events) exchanged between Asterisk and Telecom_Plugin one of the parameters is CallID or ChannelID string representing channels connected into a call (something like SIP/202-9577 IAX2/teliax-out/6)
Only Asterik is sending that channels were changed, Telecom_Plugin just acknowledges it and changes his state accordingly.