The reason I recommend using the DIalplan Injection for this as it is very easy to accomplish and does not require going into the config files.
What it will do is inject a piece of code along the dialplan.
Normally, we would set up
inbound routes -> ring group, extension, etc.
We are going to inject this code in between.
inbound route -> injection -> ring group, extension, etc.
Install Dialplan Injection
1. Download from
here to your computer. DO NOT decompress.
2. Go to Module Admin page in FreePBX and Upload Module.
3. Find Module in list and Install.
4. Reload
Create Dialplan Injection
1. Find DialPlan Injection in FreePBX Setup/Advanced/DialplanInjection
2. Add Injection. Give it a Description and optionally an extension number. (you don't need an extension for it's purpose, but can be handy for testing)
3. Save
4. The Injection should be listed on the right. Select it. You should now see a Commands Section.
5. Paste the following code into the text box.
Code:
TrySystem(wget "http://xbmc-address:3000/xbmcCmds/xbmcHttp?command=ExecBuiltIn¶meter=XBMC.Notification%28Incoming%20Call%2C${CALLERID(name)}%20%3C${CALLERID(number)}%3E%2C15000)") ; send caller id
TrySystem(wget "http://xbmc-address:3000/xbmcCmds/xbmcHttp?command=Pause") ; Pause XBMC
6. Change the 'xbcm-address:3000' to the address and port of your XBMC or spin off.
7. Set the destination to where your inbound route is currently going.
8. Save
9. Go to your inbound route and set the destination for this injection.
10. Save and reload
If it doesn't work, try changing TrySystem to System. Someone was having an issue with that.
If you are using any other app like Notify that needs to get CID info, you can add it into the injection.
Code:
Notify(${CALLERID(num)}|${CALLERID(name)}|${EXTEN}/192.168.1.2)
More info on Dialplan Injection
here and
here