• 1
  • 15
  • 16
  • 17(current)
  • 18
  • 19
  • 20
[RELEASE] XBMC PBX Addon - Home Telephony Experience using Asterisk
For the picture anyway you could change line 252 of bgservice.py to:
Code:
xbmc_caller_picture = xbmc_caller_picture_path + self.event_callerid_num + ".jpg"

I believe to make file extensions, but you would be limited to whatever extension you put there. (Might make it easier to keep track of it)

Josh
Reply
Hi All,

for exit program in APPLE TV 2 with the button "menu" of apple remote

change the line

Code:
ACTION_EXIT_SCRIPT  = (9,10,247,275,61467,216,257,61448,)

to

Code:
ACTION_EXIT_SCRIPT  = (9,10,247,275,61467,216,257,92,61448,)

in default.py
Reply
Hi All,

I've setup the pbx-add-on but can't get the incoming call pop-up working. I see the incoming call in the log file:

Code:
[XBMC PBX Addon]: > NewChannel()
[XBMC PBX Addon]: >> UniqueID: 1334494971.259
[XBMC PBX Addon]: >> State: Down
[XBMC PBX Addon]: > NewChannel()
[XBMC PBX Addon]: >> UniqueID: 1334494975.260
[XBMC PBX Addon]: >> State: Down
[XBMC PBX Addon]: > NewCallerID()
[XBMC PBX Addon]: >> UniqueID: 1334494975.260
[XBMC PBX Addon]: >> CallerID:
[XBMC PBX Addon]: > Hangup()
[XBMC PBX Addon]: >> UniqueID: 1334494975.260
[XBMC PBX Addon]: > Hangup()
[XBMC PBX Addon]: >> UniqueID: 1334494971.259

I think that it has got to do with the uniqueness of the ID which is not consistent.
Can someone confirm that above logging causes that the incoming call pop-up is not working?
And what to do about it?

Edit: Summary call flow

-Incoming call from my sip provider (via register command) triggers an extension;
-Extension dials an user (client)

I think this is why I can see that two unique channels are reported in the log file.

The question remains; How can I get the incoming pop-up working?







Reply
Hi All,

Outbound Call work with Asterisk 10.1 on APPLE TV 2 Smile the originate API function is the same in Astersik 1.8 Big Grin

My configuration work on SIP only.

Example of Setting :

Define here what to do with outbound calls
PBX: Use extension : SIP/telefone-1
PBX: Use context : outbound-calls

Example of extension.conf :

[outbound-calls]
exten => _X.,1,Dial(SIP/${EXTEN}@MyVoiceProvider)

Example of sip.conf :

[telefone-1]
type=friend
callerid="telefone-1" <1212>
username=userNameForClient
secret=passForClient
host=dynamic
context=outbound-calls
...







Reply
(2012-04-15, 20:41)marigo Wrote: Hi All,

I've setup the pbx-add-on but can't get the incoming call pop-up working. I see the incoming call in the log file:

Code:
[XBMC PBX Addon]: > NewChannel()
[XBMC PBX Addon]: >> UniqueID: 1334494971.259
[XBMC PBX Addon]: >> State: Down
[XBMC PBX Addon]: > NewChannel()
[XBMC PBX Addon]: >> UniqueID: 1334494975.260
[XBMC PBX Addon]: >> State: Down
[XBMC PBX Addon]: > NewCallerID()
[XBMC PBX Addon]: >> UniqueID: 1334494975.260
[XBMC PBX Addon]: >> CallerID:
[XBMC PBX Addon]: > Hangup()
[XBMC PBX Addon]: >> UniqueID: 1334494975.260
[XBMC PBX Addon]: > Hangup()
[XBMC PBX Addon]: >> UniqueID: 1334494971.259

I think that it has got to do with the uniqueness of the ID which is not consistent.
Can someone confirm that above logging causes that the incoming call pop-up is not working?
And what to do about it?

Edit: Summary call flow

-Incoming call from my sip provider (via register command) triggers an extension;
-Extension dials an user (client)

I think this is why I can see that two unique channels are reported in the log file.

The question remains; How can I get the incoming pop-up working?

What is your version of Asterisk ??
in the mine (10.1) I have a new Event : "Newstate" ... and in the bgservice.py there is not a subscripter to this event.

Reply
Complete manager log call (internal SIP) : Gilles Fixe <1214> ----> Gilles Iphone <1212> (without response of 1212) for Asterisk 10.1

Newchannel({'Context': 'appel-sortant', 'AccountCode': '', 'Func': '__ast_channel_alloc_ap', 'SequenceNumber': '13818', 'ChannelState': '0', 'Exten': '1212', 'CallerIDNum': '1214', 'Uniqueid': '1334680909.139', 'File': 'channel.c', 'CallerIDName': 'Gilles Fixe', 'Privilege': 'call,all', 'Line': '1353', 'Event': 'Newchannel', 'Channel': 'SIP/fixe-00000087' , 'ChannelStateDesc': 'Down'}), **{})

Newstate({'ConnectedLineNum': '', 'Func': 'ast_setstate', 'SequenceNumber': '13822', 'ChannelState': '4', 'CallerIDNum': '1214', 'Uniqueid': '1334680909.139', 'ConnectedLineName': '', 'File': 'channel.c', 'CallerIDName': 'Gilles Fixe', 'Privilege': 'call,all', 'Line': '7124', 'Event': 'Newstate', 'Channel': 'SIP/fixe-00000087' , 'ChannelStateDesc': 'Ring'}), **{})

Newexten({'Context': 'appel-sortant', 'Priority': '1', 'Func': 'pbx_extension_helper', 'SequenceNumber': '13823', 'Uniqueid': '1334680909.139', 'Extension': '1212', 'Application': 'Dial', 'File': 'pbx.c', 'Privilege': 'dialplan,all', 'Line': '4389', 'AppData': 'SIP/gillesIphone,20,m', 'Event': 'Newexten', 'Channel': 'SIP/fixe-00000087' }), **{})

Newchannel({'Context': 'appel-sortant', 'AccountCode': '', 'Func': '__ast_channel_alloc_ap', 'SequenceNumber': '13829', 'ChannelState': '0', 'Exten': '', 'CallerIDNum': '1212', 'Uniqueid': '1334680909.140', 'File': 'channel.c', 'CallerIDName': 'Gilles Iphone', 'Privilege': 'call,all', 'Line': '1353', 'Event': 'Newchannel', 'Channel': 'SIP/gillesIphone-00000088' , 'ChannelStateDesc': 'Down'}), **{})

Dial({'ConnectedLineNum': '<unknown>', 'Func': 'senddialevent', 'SequenceNumber': '13832', 'Destination': 'SIP/gillesIphone-00000088', 'CallerIDNum': '1214', 'DestUniqueID': '1334680909.140', 'SubEvent': 'Begin', 'ConnectedLineName': '<unknown>', 'UniqueID': '1334680909.139', 'File': 'app_dial.c', 'CallerIDName': 'Gilles Fixe', 'Privilege': 'call,all', 'Line': '810', 'Event': 'Dial', 'Channel': 'SIP/fixe-00000087' , 'Dialstring': 'gillesIphone'}), **{})

Newstate({'ConnectedLineNum': '1214', 'Func': 'ast_setstate', 'SequenceNumber': '13834', 'ChannelState': '5', 'CallerIDNum': '1212', 'Uniqueid': '1334680909.140', 'ConnectedLineName': 'Gilles Fixe', 'File': 'channel.c', 'CallerIDName': 'Gilles Iphone', 'Privilege': 'call,all', 'Line': '7124', 'Event': 'Newstate', 'Channel': 'SIP/gillesIphone-00000088' , 'ChannelStateDesc': 'Ringing'}), **{})

Hangup({'ConnectedLineNum': '1214', 'Cause-txt': 'Normal Clearing', 'Func': 'ast_hangup', 'SequenceNumber': '13841', 'CallerIDNum': '1212', 'Uniqueid': '1334680909.140', 'ConnectedLineName': 'Gilles Fixe', 'File': 'channel.c', 'CallerIDName': 'Gilles Iphone', 'Privilege': 'call,all', 'Line': '2896', 'Cause': '16', 'Event': 'Hangup', 'Channel': 'SIP/gillesIphone-00000088' }), **{})

Dial({'Func': 'senddialendevent', 'SequenceNumber': '13843', 'DialStatus': 'NOANSWER', 'SubEvent': 'End', 'UniqueID': '1334680909.139', 'File': 'app_dial.c', 'Privilege': 'call,all', 'Line': '820', 'Event': 'Dial', 'Channel': 'SIP/gillesIphone-00000088' }), **{})

SoftHangupRequest({'Func': 'ast_softhangup', 'SequenceNumber': '13844', 'Uniqueid': '1334680909.139', 'File': 'channel.c', 'Privilege': 'call,all', 'Line': '2731', 'Cause': '16', 'Event': 'SoftHangupRequest', 'Channel': 'SIP/fixe-00000087' }), **{})

Hangup({'ConnectedLineNum': '1212', 'Cause-txt': 'Unknown', 'Func': 'ast_hangup', 'SequenceNumber': '13845', 'CallerIDNum': '1214', 'Uniqueid': '1334680909.139', 'ConnectedLineName': 'Gilles Iphone', 'File': 'channel.c', 'CallerIDName': 'Gilles Fixe', 'Privilege': 'call,all', 'Line': '2896', 'Cause': '0', 'Event': 'Hangup', 'Channel': 'SIP/fixe-00000087' }), **{})

Reply
Hi All,

Patch code for Asterisk 10.1 (Debian Squeeze) :

work : play/pause video, contact image, redirect extension, call internal(same network SIP)/external
not work : filter by ALERT_INFO

in bgservice.py in get_incoming_call(object) :

Comment the line in def __init__(self)

Code:
self.events.subscribe('Newchannel',self.NewChannel)
self.events.subscribe('Newcallerid',self.NewCallerID)       # Asterisk 1.4
self.events.subscribe('NewCallerid',self.NewCallerID)       # Asterisk 1.6

Comment the method NewCallerID, Newchannel in get_incoming_call(object)

Add the line in def __init__(self)
Code:
self.events.subscribe('Newstate',self.Newstate)

Add the method
Code:
def Newstate(self,pbx,event):
        settings = xbmcaddon.Addon(__addon_id__)
        DEBUG = settings.getSetting("xbmc_debug")
        arr_chan_states = ['Down','Ring','Auto']
        asterisk_chan_state = settings.getSetting("asterisk_chan_state")
        asterisk_chan_state = str(arr_chan_states[int(asterisk_chan_state)])
        event_state = str(event.ChannelStateDesc)

        if (event_state == asterisk_chan_state and self.ast_my_uniqid == 0 and self.ast_first_uniqid == 0):
            self.event_callerid_num = str(event.CallerIDNum)
            if (event.CallerIDName != "" and self.event_callerid_num != ""):
                self.event_callerid = str(event.CallerIDName + " <" + self.event_callerid_num + ">")
            else:
                self.event_callerid = ""
            self.ast_my_uniqid = event.Uniqueid
            if (self.DEBUG):
                log(">>> Will attach to this one:")
                log(">>> UniqueID: " + self.ast_my_uniqid)
                log(">>> State: " + asterisk_chan_state)
                log(">> CallerID: " + self.event_callerid)
            if (self.ast_first_uniqid == 0):
                self.ast_first_uniqid = event.Uniqueid
            self.newcall_actions(event)

set the param "XBMC: Initiate upon Asterisk NewChannel State" to "Ring"

it's done !!



Reply
...Help!!!

This is the fifth time I'm trying to get this script working, and it alway hangs on "syntax error: line 2"
And nasty as astisk can be to configure, is this error for me to debug?

The xbmc-pbx-addon.php Reports:

Able to write into VoiceMail (VM) directory ERROR
(/var/spool/asterisk/voicemail/)

XBMC log:
[XBMC PBX Addon]: PATH: /home/xbmc/.xbmc/addons/script.xbmc-pbx-addon
NOTICE: [XBMC PBX Addon]: Launching GUI...
NOTICE: [XBMC PBX Addon]: __init__()
ERROR: Control 120 in window 13000 has been asked to focus, but it can't
NOTICE: [XBMC PBX Addon]: > onInit()
NOTICE: [XBMC PBX Addon]: > skinSetup()
NOTICE: [XBMC PBX Addon]: > getInfo()
NOTICE: [XBMC PBX Addon]: >> Asterisk 1.8
NOTICE: [XBMC PBX Addon]: >> Asterisk 1.8.7.1 built by xxx @ xxx.linux-appliance.net on a i686 running Linux on 2011-12-10 23:20:56 UTC (
NOTICE: [XBMC PBX Addon]: >> http://localhost/test/xbmc-pbx-addon.php...xt=default
NOTICE: [XBMC PBX Addon]: >> Notification: syntax error: line 2, column 0

APACHE error.log:
[error] [client 127.0.0.1] PHP Warning: Invalid argument supplied for foreach() in /var/www/test/xbmc-pbx-addon.php on line 320
[error] [client 127.0.0.1] PHP Warning: array_multisort(): Argument #3 is expected to be an array or a sort flag in /var/www/test/xbmc-pbx-addon.php on line 323
[error] [client 127.0.0.1] PHP Warning: array_slice() expects parameter 1 to be array, null given in /var/www/test/xbmc-pbx-addon.php on line 204
[error] [client 127.0.0.1] PHP Warning: array_reverse() expects parameter 1 to be array, null given in /var/www/test/xbmc-pbx-addon.php on line 205
[error] [client 127.0.0.1] PHP Warning: DOMDocument:ConfusedaveXML(): xmlEscapeEntities : char out of range in /var/www/test/xbmc-pbx-addon.php on line 229

Could somebody push me in the right directionHuh
Reply
(2012-04-18, 20:54)gillou666 Wrote: Hi All,

Patch code for Asterisk 10.1 (Debian Squeeze) :

work : play/pause video, contact image, redirect extension, call internal(same network SIP)/external
not work : filter by ALERT_INFO

in bgservice.py in get_incoming_call(object) :

Comment the line in def __init__(self)

Code:
self.events.subscribe('Newchannel',self.NewChannel)
self.events.subscribe('Newcallerid',self.NewCallerID)       # Asterisk 1.4
self.events.subscribe('NewCallerid',self.NewCallerID)       # Asterisk 1.6

Comment the method NewCallerID, Newchannel in get_incoming_call(object)

Add the line in def __init__(self)
Code:
self.events.subscribe('Newstate',self.Newstate)

Add the method
Code:
def Newstate(self,pbx,event):
        settings = xbmcaddon.Addon(__addon_id__)
        DEBUG = settings.getSetting("xbmc_debug")
        arr_chan_states = ['Down','Ring','Auto']
        asterisk_chan_state = settings.getSetting("asterisk_chan_state")
        asterisk_chan_state = str(arr_chan_states[int(asterisk_chan_state)])
        event_state = str(event.ChannelStateDesc)

        if (event_state == asterisk_chan_state and self.ast_my_uniqid == 0 and self.ast_first_uniqid == 0):
            self.event_callerid_num = str(event.CallerIDNum)
            if (event.CallerIDName != "" and self.event_callerid_num != ""):
                self.event_callerid = str(event.CallerIDName + " <" + self.event_callerid_num + ">")
            else:
                self.event_callerid = ""
            self.ast_my_uniqid = event.Uniqueid
            if (self.DEBUG):
                log(">>> Will attach to this one:")
                log(">>> UniqueID: " + self.ast_my_uniqid)
                log(">>> State: " + asterisk_chan_state)
                log(">> CallerID: " + self.event_callerid)
            if (self.ast_first_uniqid == 0):
                self.ast_first_uniqid = event.Uniqueid
            self.newcall_actions(event)

set the param "XBMC: Initiate upon Asterisk NewChannel State" to "Ring"

it's done !!

Hi gillou666, nice work!

I don't have an Asterisk 10 to test it. Could you please test the following ?

Get a fresh copy of bgservice.py and just add a new method: add this line in def __init__(self)
Code:
self.events.subscribe('Newstate',self.NewCallerID) # Asterisk 10.1

You can download bgservice.py from here: http://code.google.com/p/xbmc-pbx-addon/...service.py

Thank you!
Hernán.-
(2012-04-21, 23:25)peeedeee Wrote: ...Help!!!

This is the fifth time I'm trying to get this script working, and it alway hangs on "syntax error: line 2"
And nasty as astisk can be to configure, is this error for me to debug?

The xbmc-pbx-addon.php Reports:

Able to write into VoiceMail (VM) directory ERROR
(/var/spool/asterisk/voicemail/)

XBMC log:
[XBMC PBX Addon]: PATH: /home/xbmc/.xbmc/addons/script.xbmc-pbx-addon
NOTICE: [XBMC PBX Addon]: Launching GUI...
NOTICE: [XBMC PBX Addon]: __init__()
ERROR: Control 120 in window 13000 has been asked to focus, but it can't
NOTICE: [XBMC PBX Addon]: > onInit()
NOTICE: [XBMC PBX Addon]: > skinSetup()
NOTICE: [XBMC PBX Addon]: > getInfo()
NOTICE: [XBMC PBX Addon]: >> Asterisk 1.8
NOTICE: [XBMC PBX Addon]: >> Asterisk 1.8.7.1 built by xxx @ xxx.linux-appliance.net on a i686 running Linux on 2011-12-10 23:20:56 UTC (
NOTICE: [XBMC PBX Addon]: >> http://localhost/test/xbmc-pbx-addon.php...xt=default
NOTICE: [XBMC PBX Addon]: >> Notification: syntax error: line 2, column 0

APACHE error.log:
[error] [client 127.0.0.1] PHP Warning: Invalid argument supplied for foreach() in /var/www/test/xbmc-pbx-addon.php on line 320
[error] [client 127.0.0.1] PHP Warning: array_multisort(): Argument #3 is expected to be an array or a sort flag in /var/www/test/xbmc-pbx-addon.php on line 323
[error] [client 127.0.0.1] PHP Warning: array_slice() expects parameter 1 to be array, null given in /var/www/test/xbmc-pbx-addon.php on line 204
[error] [client 127.0.0.1] PHP Warning: array_reverse() expects parameter 1 to be array, null given in /var/www/test/xbmc-pbx-addon.php on line 205
[error] [client 127.0.0.1] PHP Warning: DOMDocument:ConfusedaveXML(): xmlEscapeEntities : char out of range in /var/www/test/xbmc-pbx-addon.php on line 229

Could somebody push me in the right directionHuh

Hello!, it seems there is some issues with path to files.

Please make sure you follow all steps detailed here http://code.google.com/p/xbmc-pbx-addon/...stallation and here http://code.google.com/p/xbmc-pbx-addon/...leshooting

If you are still having issues please let us know as much information as you can, i.e. Are you using latest version of this script ? which XBMC version are you running ?

Thanks!
Hernán.-


Reply
Update:

Solved the: PHP Warning: DOMDocument:ConfusedaveXML(): xmlEscapeEntities : char out of range in /var/www/test/xbmc-pbx-addon.php on line 229
Because i didn't had a Master.crv file I copied it from my router running asterisk, to my server (running xbmc and asterisk) and its probably caused by the settings.

usegmtime=yes ; log date/time in GMT. Default is "no"
loguniqueid=yes ; log uniqueid. Default is "no"
loguserfield=yes ; log user field. Default is "no"

I dialed to my asterisk server, (on my server) and there was a different notation in the Master.crv
After that i tried some other settings, and again there where less errors.

I still get the other errors (apache.log) so i think it's probably caused by the same reason.

Could someone where the plugin works, post his cdr.conf?

Reply
@herman:

You wrote: Hello! it seems there is some issues with path to files.

Actually, that can be tough? (In real-time checking it wile posting)

I checked the pads in the php script, and can "cat" the Master.crv, ...While a "ls" of the voice-mail folder, contains default? ...And In my PBX VoiceMail: Context; ...I have "the root" of my DailPlan? (Damn Asterisk Gui!)

It works Rofl ...Thank You!!!









Reply
(2012-04-22, 23:21)hmr Wrote: Hi gillou666, nice work!

I don't have an Asterisk 10 to test it. Could you please test the following ?

Get a fresh copy of bgservice.py and just add a new method: add this line in def __init__(self)
Code:
self.events.subscribe('Newstate',self.NewCallerID) # Asterisk 10.1

You can download bgservice.py from here: http://code.google.com/p/xbmc-pbx-addon/...service.py

Thank you!
Hernán.-


Hi Hernàn,

this solution doesn't work ...

The XBMC log :

Code:
NOTICE: [XBMC PBX Addon]: > NewChannel()
NOTICE: [XBMC PBX Addon]: >> UniqueID: 1335193929.171
NOTICE: [XBMC PBX Addon]: >> State: Down
NOTICE: [XBMC PBX Addon]: > NewCallerID()
NOTICE: [XBMC PBX Addon]: >> UniqueID: 1335193929.171
NOTICE: [XBMC PBX Addon]: >> CallerID: Gilles Fixe <1214>
NOTICE: [XBMC PBX Addon]: > NewChannel()
NOTICE: [XBMC PBX Addon]: >> UniqueID: 1335193929.172
NOTICE: [XBMC PBX Addon]: >> State: Down
NOTICE: [XBMC PBX Addon]: > NewCallerID()
NOTICE: [XBMC PBX Addon]: >> UniqueID: 1335193929.172
NOTICE: [XBMC PBX Addon]: >> CallerID: Gilles Iphone <1212>
NOTICE: [XBMC PBX Addon]: > Hangup()
NOTICE: [XBMC PBX Addon]: >> UniqueID: 1335193929.172
NOTICE: [XBMC PBX Addon]: > Hangup()
NOTICE: [XBMC PBX Addon]: >> UniqueID: 1335193929.171

But i know why....

as you can see in my post #246 the order of event for a new call in asterisk 10 is :

Newchannel() ---> channel caller (bgsercice : create new id)
Newstate() ---> caller ring (bgsercice : fix the id)
Newchannel() ----> channel receiver (bgsercice : create new id but it's not the same and the hangup don´t reinitialise the id ....)
Newstate() ----> receiver ringing (bgsercice : fix the new id)
Hangup() ---> hangup caller (bgservice : Huh? first id ? second id ??)

my solution it's a "mix" between newChannel and NewCallerID ....
I don't have an equipment (preconised by digium) so i don't have a dahdi or zapata channel, my system work only with SIP (maybe for this reason i have more newChannel event)






Reply
(2012-04-17, 17:56)gillou666 Wrote:
(2012-04-15, 20:41)marigo Wrote: Hi All,

I've setup the pbx-add-on but can't get the incoming call pop-up working. I see the incoming call in the log file:

Code:
[XBMC PBX Addon]: > NewChannel()
[XBMC PBX Addon]: >> UniqueID: 1334494971.259
[XBMC PBX Addon]: >> State: Down
[XBMC PBX Addon]: > NewChannel()
[XBMC PBX Addon]: >> UniqueID: 1334494975.260
[XBMC PBX Addon]: >> State: Down
[XBMC PBX Addon]: > NewCallerID()
[XBMC PBX Addon]: >> UniqueID: 1334494975.260
[XBMC PBX Addon]: >> CallerID:
[XBMC PBX Addon]: > Hangup()
[XBMC PBX Addon]: >> UniqueID: 1334494975.260
[XBMC PBX Addon]: > Hangup()
[XBMC PBX Addon]: >> UniqueID: 1334494971.259

I think that it has got to do with the uniqueness of the ID which is not consistent.
Can someone confirm that above logging causes that the incoming call pop-up is not working?
And what to do about it?

Edit: Summary call flow

-Incoming call from my sip provider (via register command) triggers an extension;
-Extension dials an user (client)

I think this is why I can see that two unique channels are reported in the log file.

The question remains; How can I get the incoming pop-up working?

What is your version of Asterisk ??
in the mine (10.1) I have a new Event : "Newstate" ... and in the bgservice.py there is not a subscripter to this event.

I have version [XBMC PBX Addon]: >> Asterisk 1.6.2.13 built by slug @ oldbuilder on a i686 running Linux on 2010-11-29 22:54:00 UTC.
It runs on my synology NAS DS211J. The voicemail pop-up works just fine. But the incoming call doesn't work. Sad

Reply
(2012-04-23, 21:32)marigo Wrote: I have version [XBMC PBX Addon]: >> Asterisk 1.6.2.13 built by slug @ oldbuilder on a i686 running Linux on 2010-11-29 22:54:00 UTC.
It runs on my synology NAS DS211J. The voicemail pop-up works just fine. But the incoming call doesn't work. Sad

with a SIP system ? your log it's an internal call between two SIP client ?
Reply
It is the log of an incoming call registred by xbmc.


This setup uses the user.conf to setup sip clients. This is where my internal client is configured. In the sip.conf I have registred my sip provider (where I receive incoming calls) and forward that to an extension. This extension dials my internal client and rings the phone. Smile

As you can see in the log this addon logged the call, but unfortunally not triggering the pop-up.
Reply
  • 1
  • 15
  • 16
  • 17(current)
  • 18
  • 19
  • 20

Logout Mark Read Team Forum Stats Members Help
[RELEASE] XBMC PBX Addon - Home Telephony Experience using Asterisk3