pgid69 / bcm63xx-phone

Telephony driver for Broadcom 6358 running OpenWrt
23 stars 18 forks source link

bcm63xx-phone

For router running LEDE/OpenWrt and based on Broadcom 6358 SoC, this project aims to add support for telephony.

Now it supports :

There are three subdirectories :

Both kernel drivers use the Microsemi Voice Path API Lite SDK, so adding support for other Microsemi devices should be quite easy. I think that support for routers based on Broadcom 6368 SoC should be quite easy too but of course it needs testing.

WARNING : by default the two kernel drivers manage SPI bus themselves in a way more efficient than bcm63xx-spi/spi-bcm63xx kernel driver (because Le88221/Le88266 requires that CS signal toggles between each byte transferred on the SPI bus and that incurs big overhead if using bcm63xx-spi/spi-bcm63xx kernel driver), so it conflicts with bcm63xx-spi/spi-bcm63xx.

Compilation

Compilation is simple : just define the directory containing the three subdirectories as custom-feed in LEDE/OpenWrt (http://wiki.openwrt.org/doc/devel/feeds) and compile the packages as any other LEDE/OpenWrt packages.

Asterisk configuration for bcm63xx-ast-chan channel

Configuration is shared between two files

The first is /etc/asterisk/bcm3xx_phone.conf. It eventually needs to be adapted to your specific needs. By default only line 1 is enabled.

The second is /etc/asterisk/extensions.conf.

Here's an example of lines added to file extensions.conf. Section [sip-provider-in] is for calls coming from outside. Here calls should be answered by phone connected to line 1 of modem.

Section [bcmph-line-1] (name of the section is configured in bcm63xx_phone.conf, parameter context) is for calls originating from phone connected to line 1 of modem. Here calls are forwarded to sip-provider.

[sip-provider-in]
exten => s,1,Dial(Bcm63xxPhone/1,120,t)
  same => n,Hangup(16)

[bcmph-line-1]
exten => _X.,1,Dial(SIP/sip-provider/${EXTEN})
  same => n,Hangup(16)