OpenBSC with Asterisk » History » Version 57
duo_kali, 09/11/2018 04:41 PM
1 | 34 | duo_kali | {{include(Disclaimer-user-content)}} |
---|---|---|---|
2 | 31 | duo_kali | |
3 | 38 | duo_kali | {{>toc}} |
4 | |||
5 | 41 | duo_kali | h1. How to install OpenBSC with Asterisk using LimeSDR (Ubuntu 16.04) |
6 | 1 | manatails | |
7 | 45 | duo_kali | h2. Build LimeSDR software and dependency |
8 | 31 | duo_kali | |
9 | ** Install Dependency |
||
10 | |||
11 | 12 | duo_kali | sudo add-apt-repository -y ppa:myriadrf/drivers |
12 | sudo apt-get update |
||
13 | 1 | manatails | |
14 | 42 | duo_kali | -install core library and build dependencies |
15 | 12 | duo_kali | sudo apt-get install git g++ cmake libsqlite3-dev |
16 | 1 | manatails | |
17 | 42 | duo_kali | -install hardware support dependencies |
18 | 1 | manatails | sudo apt-get install libsoapysdr-dev libi2c-dev libusb-1.0-0-dev |
19 | 12 | duo_kali | |
20 | 42 | duo_kali | -install graphics dependencies |
21 | 1 | manatails | sudo apt-get install libwxgtk3.0-dev freeglut3-dev gnuplot |
22 | |||
23 | |||
24 | 42 | duo_kali | h3. #Install LimeSuite |
25 | 31 | duo_kali | |
26 | 12 | duo_kali | git clone https://github.com/myriadrf/LimeSuite.git |
27 | cd LimeSuite |
||
28 | 50 | duo_kali | mkdir buildir && cd buildir |
29 | 12 | duo_kali | cmake ../ |
30 | make -j4 |
||
31 | sudo make install |
||
32 | 1 | manatails | sudo ldconfig |
33 | 12 | duo_kali | |
34 | 1 | manatails | cd LimeSuite/udev-rules |
35 | 51 | duo_kali | sudo sh ./install.sh |
36 | 1 | manatails | |
37 | 31 | duo_kali | Type “LimeSuiteGUI” on terminal to check GUI is running |
38 | 1 | manatails | </pre> |
39 | |||
40 | 56 | duo_kali | h2. Build UHD driver and SoapySDR, SoapyUHD |
41 | (only install UHD if need UHD driver as USRP, skip UHD installation for LimeSDR) |
||
42 | 38 | duo_kali | |
43 | 32 | duo_kali | ***MAKE SURE YOU HAVE A FRESH INSTALL OR DO THIS TO REMOVE ALL UHD DRIVER FROM APT***** |
44 | 13 | duo_kali | sudo apt-get remove libuhd-dev libuhd003 uhd-host |
45 | |||
46 | 1 | manatails | #Then we start compile UHD driver (install all dependency) |
47 | 13 | duo_kali | |
48 | 25 | duo_kali | sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.13-0v5 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git-core libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq-dev libzmq1 python-requests python-sphinx libcomedi-dev python-zmq python3-dbg libgps-dev python3-dev python3-pip python3-tk python3-lxml python3-six |
49 | 1 | manatails | |
50 | 12 | duo_kali | |
51 | 42 | duo_kali | h3. #Install UHD |
52 | |||
53 | 12 | duo_kali | git clone https://github.com/EttusResearch/uhd |
54 | 1 | manatails | cd uhd |
55 | 12 | duo_kali | git tag -l |
56 | ... |
||
57 | 1 | manatails | release_003_009_004 |
58 | 12 | duo_kali | release_003_009_005 |
59 | 1 | manatails | release_003_010_000_000 |
60 | |||
61 | 42 | duo_kali | - Example: For UHD 3.10.2.0: |
62 | 31 | duo_kali | then type this command : |
63 | 12 | duo_kali | |
64 | 31 | duo_kali | git checkout release_003_010_002_000 (get the latest is fine) |
65 | |||
66 | then build: |
||
67 | |||
68 | 12 | duo_kali | cd host |
69 | mkdir build |
||
70 | cd build |
||
71 | 1 | manatails | cmake ../ |
72 | make |
||
73 | 12 | duo_kali | sudo make install |
74 | 1 | manatails | sudo ldconfig |
75 | |||
76 | export LD_LIBRARY_PATH=/usr/local/lib |
||
77 | 30 | duo_kali | |
78 | ----now find UHD: |
||
79 | 1 | manatails | |
80 | uhd_find_devices |
||
81 | 30 | duo_kali | |
82 | |||
83 | 42 | duo_kali | h3. #Install SoapySDR and SoapyUHD |
84 | 1 | manatails | |
85 | |||
86 | 12 | duo_kali | git clone https://github.com/pothosware/SoapySDR.git |
87 | cd SoapySDR |
||
88 | 24 | duo_kali | mkdir build |
89 | 12 | duo_kali | cd build |
90 | cmake .. |
||
91 | make |
||
92 | sudo make install |
||
93 | sudo ldconfig |
||
94 | 1 | manatails | |
95 | 12 | duo_kali | git clone https://github.com/pothosware/SoapyUHD |
96 | 1 | manatails | cd SoapyUHD |
97 | 24 | duo_kali | mkdir build |
98 | 12 | duo_kali | cd build |
99 | 1 | manatails | cmake .. |
100 | make |
||
101 | sudo make install |
||
102 | 19 | duo_kali | sudo ldconfig |
103 | |||
104 | |||
105 | 42 | duo_kali | ---try run command to find LimeSDR : |
106 | 1 | manatails | |
107 | SoapySDRUtil --find |
||
108 | |||
109 | next.... |
||
110 | |||
111 | 37 | duo_kali | </pre> |
112 | 1 | manatails | |
113 | 39 | duo_kali | h2. Build osmo-trx |
114 | 33 | duo_kali | |
115 | 37 | duo_kali | <pre> |
116 | 12 | duo_kali | mkdir osmo |
117 | 1 | manatails | cd osmo |
118 | |||
119 | 51 | duo_kali | git clone https://github.com/osmocom/osmo-trx |
120 | 12 | duo_kali | cd osmo-trx |
121 | autoreconf -fi |
||
122 | 51 | duo_kali | ./configure --with-lms |
123 | 12 | duo_kali | make -j5 |
124 | make check |
||
125 | sudo make install |
||
126 | sudo ldconfig |
||
127 | 1 | manatails | |
128 | |||
129 | 57 | duo_kali | run on terminal: |
130 | 12 | duo_kali | |
131 | 51 | duo_kali | osmo-trx-lms |
132 | 1 | manatails | |
133 | |||
134 | 31 | duo_kali | next ….. |
135 | 1 | manatails | </pre> |
136 | |||
137 | 39 | duo_kali | h2. Build Osmocom OpenBSC with all stacks |
138 | 1 | manatails | |
139 | 31 | duo_kali | <pre> |
140 | 1 | manatails | DEPENDENCY (use synaptic when they ask more dependency when build) |
141 | 49 | duo_kali | sudo apt install libpcsclite-dev libtalloc-dev libortp-dev libsctp-dev libmnl-dev libdbi-dev libdbd-sqlite3 libsqlite3-dev sqlite3 libc-ares-dev libxml2-dev libssl-dev |
142 | 12 | duo_kali | |
143 | |||
144 | cd osmo |
||
145 | git clone git://git.osmocom.org/libosmocore |
||
146 | cd libosmocore |
||
147 | autoreconf -fi |
||
148 | ./configure |
||
149 | make -j5 |
||
150 | sudo make install |
||
151 | |||
152 | |||
153 | cd osmo |
||
154 | git clone git://git.osmocom.org/libosmo-abis |
||
155 | cd libosmo-abis |
||
156 | autoreconf -fi |
||
157 | ./configure |
||
158 | make -j5 |
||
159 | sudo make install |
||
160 | |||
161 | |||
162 | cd osmo |
||
163 | git clone git://git.osmocom.org/libosmo-netif |
||
164 | cd libosmo-netif |
||
165 | autoreconf -fi |
||
166 | ./configure |
||
167 | make -j5 |
||
168 | sudo make install |
||
169 | |||
170 | |||
171 | cd osmo |
||
172 | git clone git://git.osmocom.org/libosmo-sccp |
||
173 | cd libosmo-sccp |
||
174 | autoreconf -fi |
||
175 | ./configure |
||
176 | make -j5 |
||
177 | sudo make install |
||
178 | |||
179 | |||
180 | cd osmo |
||
181 | git clone git://git.osmocom.org/libsmpp34 |
||
182 | cd libsmpp34 |
||
183 | autoreconf -fi |
||
184 | ./configure |
||
185 | make |
||
186 | sudo make install |
||
187 | |||
188 | |||
189 | cd osmo |
||
190 | git clone git://git.osmocom.org/osmo-ggsn |
||
191 | cd osmo-ggsn |
||
192 | autoreconf -fi |
||
193 | ./configure |
||
194 | make -j5 |
||
195 | sudo make install |
||
196 | |||
197 | |||
198 | cd osmo |
||
199 | 1 | manatails | git clone git://git.osmocom.org/openbsc |
200 | 12 | duo_kali | cd openbsc/openbsc |
201 | autoreconf -fi |
||
202 | 1 | manatails | ./configure --enable-smpp --enable-osmo-bsc --enable-nat |
203 | 12 | duo_kali | make -j5 |
204 | sudo make install $$ sudo ldconfig |
||
205 | |||
206 | cd osmo |
||
207 | git clone git://git.osmocom.org/osmo-bts.git |
||
208 | cd osmo-bts |
||
209 | autoreconf -fi |
||
210 | 1 | manatails | ./configure --enable-trx |
211 | make |
||
212 | sudo make install |
||
213 | 31 | duo_kali | sudo ldconfig |
214 | 12 | duo_kali | </pre> |
215 | 1 | manatails | |
216 | 40 | duo_kali | h2. Build asterisk & osmo-sip-connector |
217 | 38 | duo_kali | |
218 | 32 | duo_kali | --Install dependencies: |
219 | 12 | duo_kali | |
220 | The extension we are about to make requires to install some additional packages. |
||
221 | sudo apt-get install libsofia-sip-ua-glib-dev |
||
222 | |||
223 | 42 | duo_kali | h3. #Install osmo-sip-connector |
224 | |||
225 | 12 | duo_kali | cd osmo |
226 | git clone git://git.osmocom.org/osmo-sip-connector.git |
||
227 | cd osmo-sip-connector |
||
228 | 1 | manatails | autoreconf -fi |
229 | ./configure |
||
230 | make |
||
231 | 12 | duo_kali | sudo make install $$ sudo ldconfig |
232 | |||
233 | setting path for configuration |
||
234 | |||
235 | gedit ~/osmo/openbsc.cfg (file attached) |
||
236 | 1 | manatails | gedit ~/osmo/osmo-bts.cfg (file attached) |
237 | gedit ~/osmo/osmo-sip-connector.cfg (file attached) |
||
238 | |||
239 | h3. #Install Asterisk |
||
240 | 12 | duo_kali | |
241 | 52 | duo_kali | git clone -b 11 http://gerrit.asterisk.org/asterisk asterisk-11 |
242 | 51 | duo_kali | cd asterisk-11 |
243 | ./configure |
||
244 | make |
||
245 | sudo make install |
||
246 | 12 | duo_kali | |
247 | 32 | duo_kali | --Asterisk configuration |
248 | 12 | duo_kali | The following section will discuss a minimal Asterisk configuration that is able to route calls between mobile phones. The described case assumes a freshly installed Asterisk with virgin configuration files. In the following we will edit extensions.conf and sip.conf which can be found in the /etc/asterisk directory. The example below is not special to GSM, its rather a normal SIP-trunk configuration. |
249 | Set up the sip-trunk towards osmo-sip-connector: |
||
250 | The first that has to be taken care of is the connection to osmo-sip-connector. The following lines need be appended to sip.conf: |
||
251 | |||
252 | cd /etc/asterisk/ |
||
253 | sudo gedit sip.conf |
||
254 | |||
255 | |||
256 | [GSM] |
||
257 | type=friend |
||
258 | host=127.0.0.1 |
||
259 | dtmfmode=rfc2833 |
||
260 | canreinvite=no |
||
261 | disallow=all |
||
262 | 1 | manatails | allow=gsm |
263 | context=gsmsubscriber |
||
264 | 12 | duo_kali | port=5069 |
265 | 1 | manatails | |
266 | 18 | duo_kali | noted : (changing port with 5062 or 5060 if 5069 not working) |
267 | |||
268 | |||
269 | 12 | duo_kali | The connection is named GSM, this name will be used later to reference the connection when routing outgoing calls. The context name “gsmsubscriber” references the context where mobile originated calls are routed into the dialplan. |
270 | Set up a dialplan to route calls: |
||
271 | 1 | manatails | Now Asterisk and osmo-sip-connector are connected. The following example introduces a very basic dialplan configuration to route calls between mobile phones. The following example can be added to extensions.conf: |
272 | 12 | duo_kali | |
273 | cd /etc/asterisk |
||
274 | sudo gedit extensions.conf |
||
275 | |||
276 | 1 | manatails | [gsmsubscriber] |
277 | 12 | duo_kali | exten=>_XXXXX,1,Dial(SIP/GSM/${EXTEN}) |
278 | exten=>_XXXXX,n,HangUp |
||
279 | 31 | duo_kali | </pre> |
280 | 12 | duo_kali | |
281 | 44 | duo_kali | h1. how to run OpenBSC stacks |
282 | 12 | duo_kali | |
283 | 31 | duo_kali | <pre> |
284 | 12 | duo_kali | ** open terminal |
285 | |||
286 | run: |
||
287 | osmo-nitb -c ~/osmo/openbsc.cfg -l ~/osmo/hlr.sqlite3 -P -C --debug=DRLL:DCC:DMM:DRR:DRSL:DNM -M /tmp/bsc_mncc |
||
288 | |||
289 | |||
290 | open new terminal |
||
291 | run: |
||
292 | osmo-bts-trx -c ~/osmo/osmo-bts.cfg |
||
293 | |||
294 | |||
295 | 1 | manatails | open new terminal |
296 | 12 | duo_kali | run: |
297 | osmo-sip-connector -c ~/osmo/osmo-sip-connector.cfg |
||
298 | |||
299 | |||
300 | 1 | manatails | open new terminal |
301 | 12 | duo_kali | run: |
302 | sudo asterisk -r |
||
303 | |||
304 | |||
305 | open new terminal |
||
306 | run: |
||
307 | 51 | duo_kali | osmo-trx-lms -C ~/osmo/limesdr.cfg |
308 | 53 | duo_kali | or |
309 | osmo-trx-uhd -C ~/osmo/limesdr.cfg (if using usrp or other hardware used UHD) |
||
310 | 28 | duo_kali | |
311 | 12 | duo_kali | open new terminal |
312 | run: |
||
313 | telnet localhost 4242 |
||
314 | enable |
||
315 | 31 | duo_kali | </pre> |
316 | 12 | duo_kali | |
317 | 28 | duo_kali | Now you running OpenBSC with Asterisk :-) |