Pbxassist

From Yate Documentation
(Difference between revisions)
Jump to: navigation, search
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== PBX assistant module ==
 
  
The pbxassist module implements a fully featured PBX that can detect keystroke sequences, trigger operations and execute them. The keys for each operation are described in the configuration file so they can be changed as required. Furthermore, new operations can be defined and implemented by external modules.
+
The pbxassist module implements a fully featured PBX that can detect keystroke sequences, trigger operations and execute them.
  
Messages are intercepted by pbxassist at a high priority (default 15) and the state of the assistant is updated as needed. In response to a matching key sequence a "chan.operation" message is enqueued. The module provides default handling for these messages by executing the requested operation.
+
The keys for each operation are described in the configuration file so they can be changed as required. Furthermore, new operations can be defined and implemented by external modules.
 +
 
 +
Messages are intercepted by pbxassist at a high priority (default 15) and the state of the assistant is updated as needed.
 +
 
 +
In response to a matching key sequence a "chan.operation" message is enqueued. The module provides default handling for these messages by executing the requested operation.
  
 
=== Operations ===
 
=== Operations ===
Line 9: Line 12:
 
The following operations are supported internally by the pbxassist module:
 
The following operations are supported internally by the pbxassist module:
  
* transparent - Let the (possibly modified) DTMF message pass through; this operation is implemented at key matching stage and does not generate "chan.operation"
+
* '''transparent''' - Let the (possibly modified) DTMF message pass through; this operation is implemented at key matching stage and does not generate "chan.operation".
* setstate - Set the current state, guest mode and conference room name
+
 
* passthrough - Enter DTMF pass-through to peer mode
+
* '''setstate''' - Set the current state, guest mode and conference room name.
* conference - Turn the call into a conference or connect back to one
+
 
* secondcall - Make another call, disconnect current peer
+
* '''passthrough''' - Enter DTMF pass-through to peer mode.
* onhold - Put the peer on hold and connect to old held party or a dialtone
+
 
* returnhold - Return to a peer left on hold, hang up the current peer
+
* '''conference''' - Turn the call into a conference or connect back to one.
* returnconf - Return to the existing conference room
+
 
* returntone - Return to a dialtone, hangup the peer if any
+
* '''secondcall''' - Make another call, disconnect current peer.
* dialtone - Return to a dialtone only if there is no peer or it could be put on hold
+
 
* transfer - Execute unassisted transfer operation
+
* '''onhold''' - Put the peer on hold and connect to old held party or a dialtone.
* dotransfer - Connect our current peer to what we have on hold, hangup this channel
+
 
* fortransfer - Enter assisted transfer - hold peer and dial another number
+
* '''returnhold''' - Return to a peer left on hold, hang up the current peer.
 +
 
 +
* '''returnconf''' - Return to the existing conference room.
 +
 
 +
* '''returntone''' - Return to a dialtone, hangup the peer if any.
 +
 
 +
* '''dialtone''' - Return to a dialtone only if there is no peer or it could be put on hold.
 +
 
 +
* '''transfer''' - Execute unassisted transfer operation.
 +
 
 +
* '''dotransfer''' - Connect our current peer to what we have on hold, hangup this channel.
 +
 
 +
* '''fortransfer''' - Enter assisted transfer - hold peer and dial another number.
 +
 
 +
=== The features implemented ===
  
 
Every time a message for creating a new channel comes, besides the Channel itself, a ChanAssist object is created. PBXAssist is a derived class from ChanAssist, assistant for Channel. The purpose of PBXAssist is to provide the features of a SOHO(Small Office-Home Office).
 
Every time a message for creating a new channel comes, besides the Channel itself, a ChanAssist object is created. PBXAssist is a derived class from ChanAssist, assistant for Channel. The purpose of PBXAssist is to provide the features of a SOHO(Small Office-Home Office).
  
The features implemented:
+
====putting a call on hold {#*}====
  
putting a call on hold {#*}
 
 
:::This operation is permitted from within a call. If you are not in a call state and you try to do this operation you are going to hear an error tone(this is configurable) that warns you that your operation has failled and remain in the same state as before.  
 
:::This operation is permitted from within a call. If you are not in a call state and you try to do this operation you are going to hear an error tone(this is configurable) that warns you that your operation has failled and remain in the same state as before.  
retrieving the call that was put on hold {*0*}
 
:::If you don't have a call on hold you are going to hear an error tone(this is configurable). This operation is allowed in every state.
 
return to tone/dial {*3}
 
:::This operation is allowed in every state.
 
make a conference
 
:::Conference PBX - there are four operations associated with the conference:
 
:::*make a conference
 
  
:::Connect to a random generated conference room in which you and your peer will be connected {#0#}. If you have already been in a conference, you and your peer are going to be connected to that room. This is allowed from within a call. If you are in the dial state, you've been to a conference room and you do this operation you are going to be connected to the same room. If the operation faills or it's not allowed, you are going to hear an error tone.
+
====retrieving the call that was put on hold {*0*}====
  
:::*exit the conference
+
:::If you don't have a call on hold you are going to hear an error tone(this is configurable). This operation is allowed in every state.
  
:::This is done with the same key that returns you to the dialing state {*3}
+
====return to tone/dial {*3}====
  
:::*return to the conference
+
:::This operation is allowed in every state.
  
:::This can happen in two ways (you return alone {##} or you return with a new peer {#0#}). You are allowed to do this operation from within a call or the dial state.
+
====make a conference====
  
:::*make a new call
+
:::[[Conference PBX]]
  
:::You are disconnected from the conference by default when you try to call your new peer {ex: 122** - calls to 122}. In case the call faills you pass to the dial state.
+
====make a new call====
  
 
make a new call
 
 
:::from a conference: you are disconnected from the conference and connected to the desired number {ex: 122** - calls to 122}; from a current call: you are connected to the desired number while your peer receives a disconnect message {ex: 122** - calls to 122}; from the dial state: you are connected to the desired number {ex: 122** - calls to 122}. This operation is allowed in every state. If the operation faills you are going to hear an error tone and remain in the same state that you were before initializing the operation  
 
:::from a conference: you are disconnected from the conference and connected to the desired number {ex: 122** - calls to 122}; from a current call: you are connected to the desired number while your peer receives a disconnect message {ex: 122** - calls to 122}; from the dial state: you are connected to the desired number {ex: 122** - calls to 122}. This operation is allowed in every state. If the operation faills you are going to hear an error tone and remain in the same state that you were before initializing the operation  
transfer a call
+
 
 +
====transfer a call====
 +
 
 
:::Transfer PBX:
 
:::Transfer PBX:
 
            
 
            
Line 61: Line 70:
 
:::Can be setup from the section [transfer] .It allows you to transfer your peer to the desired number while you are disconnected without any further action {122*3 – transfer to 122} This is allowed only from within a call. If you try to do this operation from within another state you are going to hear an error tone.  
 
:::Can be setup from the section [transfer] .It allows you to transfer your peer to the desired number while you are disconnected without any further action {122*3 – transfer to 122} This is allowed only from within a call. If you try to do this operation from within another state you are going to hear an error tone.  
  
    [transfer]
+
        [transfer]
    trigger=\([0-9]\+\)\*3$
+
        trigger=\([0-9]\+\)\*3$
    target=\1
+
        target=\1
  
 
:::*assisted transfer
 
:::*assisted transfer
Line 71: Line 80:
  
 
There is also a safety measure that says that if have done an operation (like put someone on hold or been in a conference) you won't be disconnected unless you hang up. (This was done in order to avoid being disconnected by someone else and lose the call you have put on hold or the right to enter a conference). If you have typed something wrong it's enough to wait a few seconds(this timeout is configurable) and the digits are going to be erased, no further action beeing necessary. In case you hang up forgeting that you have someone on hold that channel is also going to be disconnected. The ChanAssist object is keeped in a list implemented in ChanAssistList until the Channel object is distroyed.
 
There is also a safety measure that says that if have done an operation (like put someone on hold or been in a conference) you won't be disconnected unless you hang up. (This was done in order to avoid being disconnected by someone else and lose the call you have put on hold or the right to enter a conference). If you have typed something wrong it's enough to wait a few seconds(this timeout is configurable) and the digits are going to be erased, no further action beeing necessary. In case you hang up forgeting that you have someone on hold that channel is also going to be disconnected. The ChanAssist object is keeped in a list implemented in ChanAssistList until the Channel object is distroyed.
 +
 +
 +
'''See also'''
 +
* [[Conference PBX]]
 +
* [[PBX Module]]
 +
* [[Call Pickup]]
 +
* [[Park Module]]
 +
 +
[[Category:PBX]] [[Category:Pbxassist]] [[Category:Call transfer]] [[Category:Conference]]

Latest revision as of 13:08, 4 November 2013

The pbxassist module implements a fully featured PBX that can detect keystroke sequences, trigger operations and execute them.

The keys for each operation are described in the configuration file so they can be changed as required. Furthermore, new operations can be defined and implemented by external modules.

Messages are intercepted by pbxassist at a high priority (default 15) and the state of the assistant is updated as needed.

In response to a matching key sequence a "chan.operation" message is enqueued. The module provides default handling for these messages by executing the requested operation.

Contents

[edit] Operations

The following operations are supported internally by the pbxassist module:

  • transparent - Let the (possibly modified) DTMF message pass through; this operation is implemented at key matching stage and does not generate "chan.operation".
  • setstate - Set the current state, guest mode and conference room name.
  • passthrough - Enter DTMF pass-through to peer mode.
  • conference - Turn the call into a conference or connect back to one.
  • secondcall - Make another call, disconnect current peer.
  • onhold - Put the peer on hold and connect to old held party or a dialtone.
  • returnhold - Return to a peer left on hold, hang up the current peer.
  • returnconf - Return to the existing conference room.
  • returntone - Return to a dialtone, hangup the peer if any.
  • dialtone - Return to a dialtone only if there is no peer or it could be put on hold.
  • transfer - Execute unassisted transfer operation.
  • dotransfer - Connect our current peer to what we have on hold, hangup this channel.
  • fortransfer - Enter assisted transfer - hold peer and dial another number.

[edit] The features implemented

Every time a message for creating a new channel comes, besides the Channel itself, a ChanAssist object is created. PBXAssist is a derived class from ChanAssist, assistant for Channel. The purpose of PBXAssist is to provide the features of a SOHO(Small Office-Home Office).

[edit] putting a call on hold {#*}

This operation is permitted from within a call. If you are not in a call state and you try to do this operation you are going to hear an error tone(this is configurable) that warns you that your operation has failled and remain in the same state as before.

[edit] retrieving the call that was put on hold {*0*}

If you don't have a call on hold you are going to hear an error tone(this is configurable). This operation is allowed in every state.

[edit] return to tone/dial {*3}

This operation is allowed in every state.

[edit] make a conference

Conference PBX

[edit] make a new call

from a conference: you are disconnected from the conference and connected to the desired number {ex: 122** - calls to 122}; from a current call: you are connected to the desired number while your peer receives a disconnect message {ex: 122** - calls to 122}; from the dial state: you are connected to the desired number {ex: 122** - calls to 122}. This operation is allowed in every state. If the operation faills you are going to hear an error tone and remain in the same state that you were before initializing the operation

[edit] transfer a call

Transfer PBX:
  • unassisted transfer
Can be setup from the section [transfer] .It allows you to transfer your peer to the desired number while you are disconnected without any further action {122*3 – transfer to 122} This is allowed only from within a call. If you try to do this operation from within another state you are going to hear an error tone.
        [transfer]
        trigger=\([0-9]\+\)\*3$
        target=\1
  • assisted transfer
Can be setup from the section [fortransfer] .You type a combination of digits representing the desired number and then a specific key (this is configurable) and you are connected to the number your peer wants while your peer is put on hold {122*4}. [dotransfer] in the configuration file trigger=\*1. Then you type a specific key (this is configurable) and your current peer and the peer you have on hold are connected, while you pass to the dial state {*1} This is allowed only from within a call. If you try to do this operation from within another state you are going to hear an error tone.


There is also a safety measure that says that if have done an operation (like put someone on hold or been in a conference) you won't be disconnected unless you hang up. (This was done in order to avoid being disconnected by someone else and lose the call you have put on hold or the right to enter a conference). If you have typed something wrong it's enough to wait a few seconds(this timeout is configurable) and the digits are going to be erased, no further action beeing necessary. In case you hang up forgeting that you have someone on hold that channel is also going to be disconnected. The ChanAssist object is keeped in a list implemented in ChanAssistList until the Channel object is distroyed.


See also

Personal tools
Namespaces

Variants
Actions
Preface
Configuration
Administrators
Developers