因為工作中需要使用到opensips+mediaproxy,這邊就介紹下CentOS5.11下面安裝mediaproxy2.4.4.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<code>yum -y </code><code>install</code> <code>gcc gcc-c++ libgpg-error-devel python-devel libgcrypt-devel python-setuptools</code>
<code>rpm -ivh libnfnetlink-0.0.40-1.el5.rf.x86_64.rpm</code>
<code>rpm -ivh libnfnetlink-devel-0.0.40-1.el5.rf.x86_64.rpm</code>
<code> </code><code>rpm -ivh libnetfilter_conntrack-0.0.97-1.el5.rf.x86_64.rpm</code>
<code> </code><code>rpm -ivh libnetfilter_conntrack-devel-0.0.97-1.el5.rf.x86_64.rpm</code>
<code> </code>
<code> </code><code>tar</code> <code>jxf gnutls-2.4.2.</code><code>tar</code><code>.bz2</code>
<code> </code><code>cd</code> <code>gnutls-2.4.2</code>
<code> </code><code>.</code><code>/configure</code> <code>--with-included-libtasn1 --libdir=</code><code>/usr/local/lib64/</code>
<code> </code><code>make</code>
<code> </code><code>make</code> <code>install</code>
<code>ln</code> <code>-s </code><code>/usr/local/lib64/libgnutl</code><code>* </code><code>/usr/lib64/</code>
<code>ln</code> <code>-s </code><code>/usr/lib64/libgcrypt</code><code>.11 </code><code>/usr/lib64/libgcrypt</code><code>.11.2.2</code>
<code>ln</code> <code>-s </code><code>/usr/lib64/libgcrypt</code><code>.11 </code><code>/usr/lib64/libgcrypt</code><code>.11.2.3</code>
<code>cd</code>
<code>tar</code> <code>zxf ctypes-1.0.2.</code><code>tar</code><code>.gz</code>
<code>cd</code> <code>ctypes-1.0.2</code>
<code>.</code><code>/setup</code><code>.py build</code>
<code>.</code><code>/setup</code><code>.py </code><code>install</code>
<code>cd</code>
<code> </code><code>tar</code> <code>zxf python-application-1.1.5.</code><code>tar</code><code>.gz</code>
<code> </code><code>cd</code> <code>python-application-1.1.5</code>
<code> </code><code>.</code><code>/setup</code><code>.py build</code>
<code> </code><code>.</code><code>/setup</code><code>.py </code><code>install</code>
<code> </code><code>cd</code>
<code> </code><code>tar</code> <code>zxf python-cjson-1.0.5.</code><code>tar</code><code>.gz</code>
<code> </code><code>cd</code> <code>python-cjson-1.0.5</code>
<code> </code><code>tar</code> <code>zxf python-gnutls-1.1.9.</code><code>tar</code><code>.gz</code>
<code> </code><code>cd</code> <code>python-gnutls-1.1.9</code>
<code> </code><code>rpm -ivh python-zopeinterface-3.3.0-114.2.x86_64.rpm</code>
<code> </code><code>tar</code> <code>jxf Twisted-8.1.0.</code><code>tar</code><code>.bz2</code>
<code> </code><code>cd</code> <code>Twisted-8.1.0</code>
<code> </code><code>tar</code> <code>zxf mediaproxy-2.4.4.</code><code>tar</code><code>.gz</code>
<code> </code><code>cd</code> <code>mediaproxy-2.4.4</code>
<code> </code><code>mkdir</code> <code>/etc/mediaproxy</code>
<code> </code><code>mkdir</code> <code>-p </code><code>/var/run/opensips/</code>
<code> </code><code>mkdir</code> <code>-p </code><code>/var/run/mediaproxy</code>
<code> </code><code>cp</code> <code>/root/mediaproxy-2</code><code>.4.4</code><code>/config</code><code>.ini.sample </code><code>/etc/mediaproxy/config</code><code>.ini</code>
<code> </code><code>cp</code> <code>-rf </code><code>/root/mediaproxy-2</code><code>.4.4</code><code>/tls/</code> <code>/etc/mediaproxy/</code>
<code> </code><code>開啟ip_forward</code>
<code> </code><code>sed</code> <code>-i </code><code>'s#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#g'</code> <code>/etc/sysctl</code><code>.conf</code>
<code> </code><code>sysctl -p</code>
<code> </code><code>config.ini</code>
<code> </code><code>[Relay]</code>
<code>dispatchers = 192.168.88.245</code>
<code>passport = None</code>
<code>relay_ip = 192.168.88.245</code>
<code>port_range = 50000:60000</code>
<code>log_level = DEBUG</code>
<code>on_hold_timeout = 1800</code>
<code>[Dispatcher]</code>
<code>socket_path = dispatcher.sock</code>
<code>listen = 192.168.88.245</code>
<code>listen_management = 192.168.88.245</code>
<code>management_use_tls = no</code>
<code>management_passport = None</code>
<code>[TLS]</code>
<code>[Database]</code>
<code>[Radius]</code>
<code>[OpenSIPS]</code>
<code>socket_path = </code><code>/var/run/opensips/socket</code>
<code>max_connections = 10</code>
在opensips的配置檔案opensips.cfg的route上面增加
<code>loadmodule </code><code>"mediaproxy.so"</code>
<code>modparam(</code><code>"mediaproxy"</code><code>, </code><code>"disable"</code><code>, 0)</code>
<code>modparam(</code><code>"mediaproxy"</code><code>, </code><code>"mediaproxy_socket"</code><code>, </code><code>"/var/run/mediaproxy/dispatcher.sock"</code><code>)</code>
<code>modparam(</code><code>"mediaproxy"</code><code>, </code><code>"mediaproxy_timeout"</code><code>, 1000)</code>
<code>modparam(</code><code>"mediaproxy"</code><code>, </code><code>"signaling_ip_avp"</code><code>, </code><code>"$avp(nat_ip)"</code><code>)</code>
<code>modparam(</code><code>"mediaproxy"</code><code>, </code><code>"media_relay_avp"</code><code>, </code><code>"$avp(media_relay)"</code><code>)</code>
<code>modparam(</code><code>"mediaproxy"</code><code>, </code><code>"ice_candidate"</code><code>, </code><code>"low-priority"</code><code>)</code>
運作media-dispatcher可能沒有問題,可是運作media-relay就可能會出現
<code>May 22 11:50:40 localhost media-relay[9757]: Starting MediaProxy Relay 2.4.4</code>
<code>May 22 11:50:40 localhost media-relay[9757]: fatal error: failed to create MediaProxy Relay: Could not initialize the iptables </code><code>'nat'</code> <code>table. Missing kernel support or running without root priviliges.</code>
這個時候運作
[root@mySer ~]# lsmod|grep nat
#發現沒有輸出
再運作
<code>[root@mySer ~]</code><code># modprobe iptable_nat</code>
<code>[root@mySer ~]</code><code># lsmod|grep nat</code>
<code>iptable_nat 40517 0</code>
<code>ip_nat 53357 1 iptable_nat</code>
<code>ip_tables 55329 1 iptable_nat</code>
<code>ip_conntrack 92005 2 iptable_nat,ip_nat</code>
<code>nfnetlink 40585 2 ip_nat,ip_conntrack</code>
<code>x_tables 50377 2 iptable_nat,ip_tables</code>
使用modprobe iptable_nat可能重新啟動後就失效,這個時候你需要
<code>echo</code> <code>"modprobe iptable_nat"</code> <code>>> </code><code>/etc/sysconfig/modules/iptable_nat</code><code>.modules</code>
<code>chmod</code> <code>+x </code><code>/etc/sysconfig/modules/iptable_nat</code><code>.modules</code>
在啟動media-relay就成功了。
本文轉自 rong341233 51CTO部落格,原文連結:http://blog.51cto.com/fengwan/1652807