Howto:Routing incoming calls based on a PBX-Directory
How realize a LDAP Phone directory in the innovaphone PBX without any external LDAP server is well known and described in this Wiki (see relative link).
We talking about external numbers, not the PBX users.
But those directory is “passive”, you can search a name and call, and there is a name resolution incoming and outgoing (so if the caller is in the directory you will see his name and not just his number, if you dial this number also the name appears in the display of your IP-Phone).
Nice would be the possibility to assign to an entry also a target number; if this number is calling the call goes directly to the assigned user.
For example if a sales guy “map” a directory entry to his extension and that customer calls the company,that call goes automatically to his phone.
All that should be possible without using the routing table, because the customer (the user) wants handling the directory simply modifying the PBX directory.
And should be possible without application platform and external server, just using the PBX and a small free XML.
Yes we can.
This information applies to
- Innovaphone PBX Version 9
- CF required
- Works also on IP302/305 (no app.proc. required)
This article describes how a user destination can be assigned to a directory entry. This user will then be called automatically, if this number calls the company. It is a kind of small ACD function and nice feature without the need of any external server.
To each entry of the PBX-directory can be assigned a target number (or not). If no number is assigned the call will follow a default destination, if a target number is assigned the call will be transfer there. Typically this will be a PBX-user, assigned to answer the calls coming from that caller. Usually the end customer should maintain this directory and therefore a relative password (and barring to critical the other objects) is to configure. The target user is indicated as a CFU destination. So if a directory user has a CFU than an incoming call from that number will be forwarded to that CFU destination.
Example: User Klaus has the number 03472619287 in the PBX-Directory (note the “0” for trunk access). If the directory entry Klaus has a CFU to 123, and if Klaus calls the PBX, the call will be forwarded automatically to the extension 123.
How is that possible? Remember that once correct configured, a directory entry will be just an empty user in a node, while the Phone sets will do LDAP query whenever a call is in progress, in or out, and add the retrieved name to the number. If searching in that directory a similar thing happens. If you activate a call out from the directory that user is not “called”, but the Phone will just retrieve the number information and then dial it. Therefore an “additional” CFU information is not changing anything in all that, and therefore everything works fine.
The trick is now to convince an incoming call to follow the CFU destination if there is any, and that job is doing the XML. The XML get the calling information (the calling number), look in the PBX if the number is in the directory and has a CFU, if yes, transfer the call there, otherwise to a default destination. Really simple, no audio cannel will be involved (the xml is not answering the call).
Extract the files and copy them to a directory. Open a text editor and modify both text files:
“book_prefix.txt” must contain the number of the node of the directory.
“Default_Target.txt” must contain the destination of the call in case of no assigned internal number (the default destination, the one usually the routing table will call).
Now copy all the files in a directory on the compact flash. Open the browser and create a new VM Object (no license is required to do this) and indicate in the Voicemail tab/Script url to the xml path (for example
Now you have to modify the routing table so that some (or all, depend on your scenario, for example if you have a DID or not) will point on the number of the XML.
- Download the complete file package of scripts and files described in this article.