The error is solved. This only happens if I start LCR and then OpenBSC because with LCR OpenBSC is also started.

Regards
Ellen

2012/6/26 Ellen Apolinar <ellen.apolinar.td@googlemail.com>
@Don: Thanks, yes, that was the problem. I didn't know that the version from linux-call-router.de is so old.

@Mailinglist:

I tried it again. And this time I installed it from git:
git clone git://git.misdn.eu/lcr.git/
cd /usr/src/lcr
./configure –without-asterisk --with-gsm-bs
make
make install

 
In the last installation I installed it from linux-call-router.de. Configuration with --with-sip wasn't available.

lcr start:
** LCR  Version 1.10

ERROR Cannot get device information for port 1. (ioctl IMGETDEVINFO failed ret=-1)
LCR 1.10 started, waiting for calls...

lcradmin state
Ext(port 0: hfc-e1.1) TE ptp l2hold use:0  L2 unkn  L1 unkn
Int (port 1: ) extension  not loaded


Also OpenBSC worked. Now I get this error massage:
./osmo-nitb -c openbsc.cfg -C
1 device found
        id:             0
        Dprotocols:     00000018
        Bprotocols:     0000006e
        protocol:       3
        nrbchan:        30
        name:           hfc-e1.1
could not bind l2 socket Device or resource busy
<0005> bsc_init.c:512 Error enabling E1 input driver

I don't know what is wrong and how I can solve this. Google wasn't very helpful in this case.

And how can I connect LCR to OpenBSC?

And what can I do with lcradmin state?

Best regards
Ellen


2012/6/26 Ellen Apolinar <ellen.apolinar.td@googlemail.com>
Hey Andreas,

I try the way over SIP. But perhaps I make something wrong.

What I want to do:
cd /usr/src/lcr
./configure --prefix=/usr/src/lcr --without-misdn --with-sip


What I get:
configure: WARNING: unrecognized options: --without-misdn, --with-sip

What I am able to do:
./configure --prefix=/usr/src/lcr --with
--with-asterisk    --with-gsm-ms      --with-PACKAGE     --with-ssl        
--with-gsm-bs      --without-PACKAGE  --with-ss5
        

Makefile:
ENABLE_ASTERISK_CHANNEL_DRIVER_FALSE = #
ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE =
ENABLE_GSM_BS_FALSE = #
ENABLE_GSM_BS_TRUE =
ENABLE_GSM_FALSE = #
ENABLE_GSM_MS_FALSE =
ENABLE_GSM_MS_TRUE = #
ENABLE_GSM_TRUE =
ENABLE_SS5_FALSE =
ENABLE_SS5_TRUE = #


I change to:
ENABLE_ASTERISK_CHANNEL_DRIVER_FALSE = #
ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE =
ENABLE_GSM_BS_FALSE =
ENABLE_GSM_BS_TRUE = #
ENABLE_GSM_FALSE = #
ENABLE_GSM_MS_FALSE = #
ENABLE_GSM_MS_TRUE =
ENABLE_GSM_TRUE =
ENABLE_SS5_FALSE =
ENABLE_SS5_TRUE = #

make:
make  all-am
make[1]: Entering directory `/usr/src/lcr'
gcc   -DWITH_GSM_BS -I./openbsc/include -I./libosmocore/include -I./openbsc   -Wall -DCONFIG_DATA="\"/usr/local/lcr\"" -DSHARE_DATA="\"/usr/local/lcr\"" -DLOG_DIR="\"/usr/local/lcr\"" -DEXTENSION_DATA="\"/usr/local/lcr/extensions\"" -D_GNU_SOURCE -fPIC -c chan_lcr.c -o chan_lcr.po
chan_lcr.c: In function ‘send_setup_to_lcr’:
chan_lcr.c:644:12: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:655:12: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c: In function ‘lcr_in_setup’:
chan_lcr.c:858:2: warning: passing argument 9 of ‘__ast_channel_alloc’ makes integer from pointer without a cast [enabled by default]
/usr/include/asterisk/channel.h:1118:2: note: expected ‘int’ but argument is of type ‘char *’
chan_lcr.c:883:6: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:885:6: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:887:6: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:890:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:893:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:896:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:900:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:903:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:906:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:909:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c: In function ‘handle_queue’:
chan_lcr.c:1707:18: error: incompatible types when assigning to type ‘union ast_frame_subclass’ from type ‘char’
chan_lcr.c: In function ‘lcr_request’:
chan_lcr.c:1820:2: warning: passing argument 9 of ‘__ast_channel_alloc’ makes integer from pointer without a cast [enabled by default]
/usr/include/asterisk/channel.h:1118:2: note: expected ‘int’ but argument is of type ‘char *’
chan_lcr.c: In function ‘lcr_call’:
chan_lcr.c:1927:9: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1927:31: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1928:29: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1931:9: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1931:32: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1932:30: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1934:9: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1934:33: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1935:31: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c: In function ‘lcr_write’:
chan_lcr.c:2164:6: error: wrong type argument to unary exclamation mark
chan_lcr.c:2166:20: error: invalid operands to binary & (have ‘union ast_frame_subclass’ and ‘format_t’)
chan_lcr.c: In function ‘lcr_read’:
chan_lcr.c:2229:25: error: incompatible types when assigning to type ‘union ast_frame_subclass’ from type ‘format_t’
chan_lcr.c: In function ‘lcr_indicate’:
chan_lcr.c:2274:8: warning: assignment from incompatible pointer type [enabled by default]
chan_lcr.c:2289:8: warning: assignment from incompatible pointer type [enabled by default]
chan_lcr.c:2316:8: warning: assignment from incompatible pointer type [enabled by default]
chan_lcr.c:2381:14: error: dereferencing pointer to incomplete type
chan_lcr.c:2382:33: error: dereferencing pointer to incomplete type
chan_lcr.c: At top level:
chan_lcr.c:2602:2: warning: initialization from incompatible pointer type [enabled by default]
chan_lcr.c:2602:2: warning: (near initialization for ‘lcr_tech.requester’) [enabled by default]
chan_lcr.c: In function ‘load_module’:
chan_lcr.c:2818:2: warning: passing argument 2 of ‘ast_register_application2’ from incompatible pointer type [enabled by default]
/usr/include/asterisk/module.h:458:5: note: expected ‘int (*)(struct ast_channel *, const char *)’ but argument is of type ‘int (*)(struct ast_channel *, void *)’
make[1]: *** [chan_lcr.po] Error 1
make[1]: Leaving directory `/usr/src/lcr'
make: *** [all] Error 2

make install:
gcc   -DWITH_GSM_BS -I./openbsc/include -I./libosmocore/include -I./openbsc   -Wall -DCONFIG_DATA="\"/usr/local/lcr\"" -DSHARE_DATA="\"/usr/local/lcr\"" -DLOG_DIR="\"/usr/local/lcr\"" -DEXTENSION_DATA="\"/usr/local/lcr/extensions\"" -D_GNU_SOURCE -fPIC -c chan_lcr.c -o chan_lcr.po
chan_lcr.c: In function ‘send_setup_to_lcr’:
chan_lcr.c:644:12: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:655:12: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c: In function ‘lcr_in_setup’:
chan_lcr.c:858:2: warning: passing argument 9 of ‘__ast_channel_alloc’ makes integer from pointer without a cast [enabled by default]
/usr/include/asterisk/channel.h:1118:2: note: expected ‘int’ but argument is of type ‘char *’
chan_lcr.c:883:6: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:885:6: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:887:6: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:890:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:893:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:896:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:900:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:903:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:906:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:909:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c: In function ‘handle_queue’:
chan_lcr.c:1707:18: error: incompatible types when assigning to type ‘union ast_frame_subclass’ from type ‘char’
chan_lcr.c: In function ‘lcr_request’:
chan_lcr.c:1820:2: warning: passing argument 9 of ‘__ast_channel_alloc’ makes integer from pointer without a cast [enabled by default]
/usr/include/asterisk/channel.h:1118:2: note: expected ‘int’ but argument is of type ‘char *’
chan_lcr.c: In function ‘lcr_call’:
chan_lcr.c:1927:9: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1927:31: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1928:29: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1931:9: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1931:32: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1932:30: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1934:9: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1934:33: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1935:31: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c: In function ‘lcr_write’:
chan_lcr.c:2164:6: error: wrong type argument to unary exclamation mark
chan_lcr.c:2166:20: error: invalid operands to binary & (have ‘union ast_frame_subclass’ and ‘format_t’)
chan_lcr.c: In function ‘lcr_read’:
chan_lcr.c:2229:25: error: incompatible types when assigning to type ‘union ast_frame_subclass’ from type ‘format_t’
chan_lcr.c: In function ‘lcr_indicate’:
chan_lcr.c:2274:8: warning: assignment from incompatible pointer type [enabled by default]
chan_lcr.c:2289:8: warning: assignment from incompatible pointer type [enabled by default]
chan_lcr.c:2316:8: warning: assignment from incompatible pointer type [enabled by default]
chan_lcr.c:2381:14: error: dereferencing pointer to incomplete type
chan_lcr.c:2382:33: error: dereferencing pointer to incomplete type
chan_lcr.c: At top level:
chan_lcr.c:2602:2: warning: initialization from incompatible pointer type [enabled by default]
chan_lcr.c:2602:2: warning: (near initialization for ‘lcr_tech.requester’) [enabled by default]
chan_lcr.c: In function ‘load_module’:
chan_lcr.c:2818:2: warning: passing argument 2 of ‘ast_register_application2’ from incompatible pointer type [enabled by default]
/usr/include/asterisk/module.h:458:5: note: expected ‘int (*)(struct ast_channel *, const char *)’ but argument is of type ‘int (*)(struct ast_channel *, void *)’

lcr start:
** LCR  Version 1.7

000000 DEBUG (in getrulesetbyname() line 1871): ruleset main found.
GSM is enabled, but not compiled. Use --with-gsm-bs or --with-gsm-ms while configure!
--------------------- 2012.06.26 10:35:27 000001

000001 DEBUG (in join_free() line 99): no more pending join(s), done!

Sofiasip is installed. Is there anything I forget so I can't configure LCR with sip?

Best regards.
Ellen


2012/6/24 Andreas Eversberg <andreas@eversberg.eu>
Ellen Apolinar wrote:

OpenBSC seems to work without errors but to connect it with asterisk I need mISDN, mISDNuser and LCR.

hi,

if you like to use lcr with gsm (bs or ms), then you cannot use asterisk channel driver. it only works with isdn. but you can use sip. in order to do that you may:

- disable mISDN  (--without-misdn)
- enable sip (--with-sip), you also need to have sipsofia installed
- add a sip interface (see default/interface.conf). then everything is possible without mISDN, but you cannot use isdn phones/lines in this setup.

example to just connect GSM and SIP interface without routing:

 [GSM]
gsm-bs
tones yes
earlyb no
#rtp-bridge
bridge SIP


[SIP]
sip <local ip>[:local sip port] <asterisk sip ip>[:asterisk sip port]
tones no
earlyb yes
#rtp-bridge
bridge GSM

if asterisk and lcr run on the same machine, you need to change the sip port on asterisk or lcr side.

if you like to use GSM codec on asterisk side, you may enable rtp-bridge. then the asterisk directly negotiates the codec with the phone.
in this case GSM codec must be supported by asterisk. tested codecs are FR(standard) and EFR.

regards,

andreas