RTP direkt, bzw. Bypass Media (Video)

140 views
Skip to first unread message

Housebuilder

unread,
Apr 15, 2013, 8:52:54 AM4/15/13
to gs5-...@googlegroups.com
Hallo,

was muss ich konfigurieren damit GS5 den RTP Stream zwischen Devices direkt erlaubt?
Hier bei uns im lokalen Netz fände ich es schöner wenn der RTP Stream direkt zwischen den Devices läuft.

Weiterhin haben wir nun neben Snom, Siemens und Innovaphone noch ein Pärchen Grandstream GXV3175 zum testen hier.
Da auch die Frage wie oben. Was muss ich konfigurieren damit GS5 den RTP Video Stream bypassed bzw. direkt signalisiert?

Viele Grüße

Dirk

Housebuilder

unread,
Apr 22, 2013, 7:21:12 AM4/22/13
to gs5-...@googlegroups.com

Hallo,

im Freeswitch Wiki habe ich dazu folgendes gefunden:

http://wiki.freeswitch.org/wiki/Bypass_Media

Wenn ich das jetzt richtig verstanden habe sollte der Parameter
<param name="inbound-bypass-media" value="true"/>
das Bypass Verhalten einschalten, leider ist der Parameter unter /Gemeinschaft Parameter nicht zu finden.
Wo kann in der GS5 kann ich das konfigurieren?

Viele Grüße

Dirk

Peter Kozak

unread,
Apr 23, 2013, 1:40:00 PM4/23/13
to gs5-...@googlegroups.com
On 04/22/2013 01:21 PM, Housebuilder wrote:
> Wenn ich das jetzt richtig verstanden habe sollte der Parameter
>
> <param name="inbound-bypass-media" value="true"/>
>
> das Bypass Verhalten einschalten, leider ist der Parameter unter
> /Gemeinschaft Parameter nicht zu finden.
> Wo kann in der GS5 kann ich das konfigurieren?

http://<ip_address>/gs_parameters


Mit freundlichen Gr��en

Peter Kozak

--

AMOOMA GmbH - Bachstr. 124 - 56566 Neuwied --> http://www.amooma.de
Gesch�ftsf�hrer: Stefan Wintermeyer, Handelsregister Montabaur B14998

B�cher: http://das-asterisk-buch.de - http://ruby-auf-schienen.de

Housebuilder

unread,
Apr 24, 2013, 3:51:03 AM4/24/13
to gs5-...@googlegroups.com
Hallo,

unter http://<ip_address>/gs_parameters kann ich den Parameter leider nicht finden.
(Version ist noch die 5.1.1)
Wie bekomme ich den Parameter dort hinzugefügt, bzw. wo muß er dazukonfiguriert werden?

Viele Grüße

Dirk


Am Dienstag, 23. April 2013 19:40:00 UTC+2 schrieb Peter Kozak:
On 04/22/2013 01:21 PM, Housebuilder wrote:
> Wenn ich das jetzt richtig verstanden habe sollte der Parameter
>
> <param name="inbound-bypass-media" value="true"/>
>
> das Bypass Verhalten einschalten, leider ist der Parameter unter
> /Gemeinschaft Parameter nicht zu finden.
> Wo kann in der GS5 kann ich das konfigurieren?

http://<ip_address>/gs_parameters


Mit freundlichen Gr��en

Peter Kozak

--

AMOOMA GmbH - Bachstr. 124 - 56566 Neuwied  -->  http://www.amooma.de
Gesch�ftsf�hrer: Stefan Wintermeyer, Handelsregister Montabaur B14998

B�cher: http://das-asterisk-buch.de - http://ruby-auf-schienen.de

Peter Kozak

unread,
Apr 24, 2013, 5:35:01 AM4/24/13
to gs5-...@googlegroups.com
On 04/24/2013 09:51 AM, Housebuilder wrote:
> Hallo,
>
> unter http://<ip_address>/gs_parameters kann ich den Parameter leider
> nicht finden.
> (Version ist noch die 5.1.1)
> Wie bekomme ich den Parameter dort hinzugef�gt, bzw. wo mu� er
> dazukonfiguriert werden?

Das geht wohl nur in der Datenbank.


Oder du koenntest stattdessen den "bypass_media_network" Parameter
ausprobieren:

z.B.

bypass_media_network => 192.168.0.1/24



Mit freundlichen Gr��en

Peter Kozak

--

AMOOMA GmbH - Bachstr. 124 - 56566 Neuwied --> http://www.amooma.de
Gesch�ftsf�hrer: Stefan Wintermeyer, Handelsregister Montabaur B14998

B�cher: http://das-asterisk-buch.de - http://ruby-auf-schienen.de

Housebuilder

unread,
Apr 24, 2013, 6:25:23 AM4/24/13
to gs5-...@googlegroups.com
Hallo Peter,

der bypass_media_network Parameter steht derzeit auf "false" imho müsste da ja "true" rein, dann fehlt aber noch der IP Range.
Oder anstatt dem "true" den IP Range rein und den "Class Type" auf "String" setzen?

Wenn ich den Parameter "inbound_bypass_media" in gs_parameters haben möchte müsste ich das mit Rails bzw im My-SQL machen?




Am Mittwoch, 24. April 2013 11:35:01 UTC+2 schrieb Peter Kozak:
On 04/24/2013 09:51 AM, Housebuilder wrote:
> Hallo,
>
> unter http://<ip_address>/gs_parameters kann ich den Parameter leider
> nicht finden.
> (Version ist noch die 5.1.1)
> Wie bekomme ich den Parameter dort hinzugef�gt, bzw. wo mu� er
> dazukonfiguriert werden?

Das geht wohl nur in der Datenbank.


Oder du koenntest stattdessen den "bypass_media_network" Parameter
ausprobieren:

z.B.

  bypass_media_network => 192.168.0.1/24



Mit freundlichen Gr��en

Peter Kozak

--

AMOOMA GmbH - Bachstr. 124 - 56566 Neuwied  -->  http://www.amooma.de
Gesch�ftsf�hrer: Stefan Wintermeyer, Handelsregister Montabaur B14998

B�cher: http://das-asterisk-buch.de - http://ruby-auf-schienen.de

Housebuilder

unread,
Apr 24, 2013, 7:02:59 AM4/24/13
to gs5-...@googlegroups.com
Nachtrag:
Ich habe den Parameter "bypass_media_network" mal auf "true" gesetzt dann legt die GS5 nach dem annehmen einfach auf.

Peter Kozak

unread,
Apr 24, 2013, 7:08:52 AM4/24/13
to gs5-...@googlegroups.com
On 04/24/2013 12:25 PM, Housebuilder wrote:
> Oder anstatt dem "true" den IP Range rein und den "Class Type" auf
> "String" setzen?

Genau.


> Wenn ich den Parameter "inbound_bypass_media" in gs_parameters haben
> m�chte m�sste ich das mit Rails bzw im My-SQL machen?

Am einfachsten wahrscheinlich MySQL.

Das MySQL Passwort sollte in folgender Datei stehen:
/var/lib/freeswitch/.odbc.ini


Mit freundlichen Gr��en

Peter Kozak

--

AMOOMA GmbH - Bachstr. 124 - 56566 Neuwied --> http://www.amooma.de
Gesch�ftsf�hrer: Stefan Wintermeyer, Handelsregister Montabaur B14998

B�cher: http://das-asterisk-buch.de - http://ruby-auf-schienen.de

Housebuilder

unread,
Apr 24, 2013, 7:22:26 AM4/24/13
to gs5-...@googlegroups.com
Funktioniert leider nicht, GS5 legt dann nach dem Annehmen einfach auf.


Am Mittwoch, 24. April 2013 13:08:52 UTC+2 schrieb Peter Kozak:
On 04/24/2013 12:25 PM, Housebuilder wrote:
> Oder anstatt dem "true" den IP Range rein und den "Class Type" auf
> "String" setzen?

Genau.


> Wenn ich den Parameter "inbound_bypass_media" in gs_parameters haben
> m�chte m�sste ich das mit Rails bzw im My-SQL machen?

Am einfachsten wahrscheinlich MySQL.

Das MySQL Passwort sollte in folgender Datei stehen:
/var/lib/freeswitch/.odbc.ini


Mit freundlichen Gr��en

Peter Kozak

--

AMOOMA GmbH - Bachstr. 124 - 56566 Neuwied  -->  http://www.amooma.de
Gesch�ftsf�hrer: Stefan Wintermeyer, Handelsregister Montabaur B14998

B�cher: http://das-asterisk-buch.de - http://ruby-auf-schienen.de

Peter Kozak

unread,
Apr 24, 2013, 7:24:57 AM4/24/13
to gs5-...@googlegroups.com
On 04/24/2013 01:22 PM, Housebuilder wrote:
> Funktioniert leider nicht, GS5 legt dann nach dem Annehmen einfach auf.

Was steht dazu im Log? Vielleichti ist es ja ein Bug.


Mit freundlichen Gr��en

Peter Kozak

--

AMOOMA GmbH - Bachstr. 124 - 56566 Neuwied --> http://www.amooma.de
Gesch�ftsf�hrer: Stefan Wintermeyer, Handelsregister Montabaur B14998

B�cher: http://das-asterisk-buch.de - http://ruby-auf-schienen.de

Housebuilder

unread,
Apr 24, 2013, 7:47:24 AM4/24/13
to gs5-...@googlegroups.com
Hallo Peter,

hier der Auszug aus dem Log:

Channel-State: [CS_EXECUTE]
Channel-Call-State: [RINGING]
Channel-State-Number: [4]
Channel-Name: [sofia/gemeinschaft/17...@10.49.1.3]
Unique-ID: [0ed7287e-f698-46c8-9317-f48441f69147]
Call-Direction: [inbound]
Presence-Call-Direction: [inbound]
Channel-HIT-Dialplan: [true]
Channel-Presence-ID: [17...@10.49.1.3]
Channel-Call-UUID: [0ed7287e-f698-46c8-9317-f48441f69147]
Answer-State: [ringing]
Channel-Read-Codec-Name: [PCMA]
Channel-Read-Codec-Rate: [8000]
Channel-Read-Codec-Bit-Rate: [64000]
Channel-Write-Codec-Name: [PCMA]
Channel-Write-Codec-Rate: [8000]
Channel-Write-Codec-Bit-Rate: [64000]
Caller-Direction: [inbound]
Caller-Username: [1768]
Caller-Dialplan: [XML]
Caller-Caller-ID-Name: [Dirk]
Caller-Caller-ID-Number: [1768]
Caller-Network-Addr: [10.49.1.3]
Caller-ANI: [1768]
Caller-Destination-Number: [6071]
Caller-Unique-ID: [0ed7287e-f698-46c8-9317-f48441f69147]
Caller-Source: [mod_sofia]
Caller-Context: [default]
Caller-Channel-Name: [sofia/gemeinschaft/17...@10.49.1.3]
Caller-Profile-Index: [1]
Caller-Profile-Created-Time: [1366802113787448]
Caller-Channel-Created-Time: [1366802113787448]
Caller-Channel-Answered-Time: [0]
Caller-Channel-Progress-Time: [0]
Caller-Channel-Progress-Media-Time: [0]
Caller-Channel-Hangup-Time: [0]
Caller-Channel-Transfer-Time: [0]
Caller-Channel-Resurrect-Time: [0]
Caller-Channel-Bridged-Time: [0]
Caller-Channel-Last-Hold: [0]
Caller-Channel-Hold-Accum: [0]
Caller-Screen-Bit: [true]
Caller-Privacy-Hide-Name: [false]
Caller-Privacy-Hide-Number: [false]
variable_direction: [inbound]
variable_uuid: [0ed7287e-f698-46c8-9317-f48441f69147]
variable_session_id: [1]
variable_sip_from_user: [1768]
variable_sip_from_uri: [17...@10.49.1.3]
variable_sip_from_host: [10.49.1.3]
variable_channel_name: [sofia/gemeinschaft/17...@10.49.1.3]
variable_sip_call_id: [8fc424e76b436f62...@10.49.1.3]
variable_sip_local_network_addr: [10.49.31.36]
variable_sip_network_ip: [10.49.1.3]
variable_sip_network_port: [10000]
variable_sip_received_ip: [10.49.1.3]
variable_sip_received_port: [10000]
variable_sip_via_protocol: [udp]
variable_sip_from_user_stripped: [1768]
variable_sip_from_tag: [9baaf985f6f9b431087492016d963dc2]
variable_sofia_profile_name: [gemeinschaft]
variable_recovery_profile_name: [gemeinschaft]
variable_sip_P-Asserted-Identity: [1768]
variable_sip_cid_type: [pid]
variable_sip_full_route: [<sip:10.49.31.36;lr>]
variable_sip_full_via: [SIP/2.0/UDP 10.49.1.3;branch=z9hG4bK483916553eda7e01af2b3e14513ed77b]
variable_sip_from_display: [Dirk]
variable_sip_full_from: ["Dirk" <sip:17...@10.49.1.3>;tag=9baaf985f6f9b431087492016d963dc2]
variable_sip_full_to: [sip:60...@10.49.31.36]
variable_sip_req_user: [6071]
variable_sip_req_uri: [60...@10.49.31.36]
variable_sip_req_host: [10.49.31.36]
variable_sip_to_user: [6071]
variable_sip_to_uri: [60...@10.49.31.36]
variable_sip_to_host: [10.49.31.36]
variable_sip_contact_user: [nobody]
variable_sip_contact_uri: [nob...@10.49.1.3]
variable_sip_contact_host: [10.49.1.3]
variable_sip_user_agent: [OmniPCX Enterprise R8.0 g1.302.10]
variable_sip_via_host: [10.49.1.3]
variable_max_forwards: [70]
variable_presence_id: [17...@10.49.1.3]
variable_switch_r_sdp: [v=0
o=OXE 1366802133 1366802133 IN IP4 10.49.1.3
s=abs
c=IN IP4 10.49.1.46
t=0 0
m=audio 32164 RTP/AVP 8 0 18 97
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=rtpmap:97 telephone-event/8000
a=ptime:20
a=maxptime:30
a=ptime:20
a=maxptime:30
a=ptime:20
a=maxptime:40
]
variable_remote_media_ip: [10.49.1.46]
variable_remote_media_port: [32164]
variable_sip_audio_recv_pt: [8]
variable_sip_use_codec_name: [PCMA]
variable_sip_use_codec_rate: [8000]
variable_sip_use_codec_ptime: [20]
variable_read_codec: [PCMA]
variable_read_rate: [8000]
variable_write_codec: [PCMA]
variable_write_rate: [8000]
variable_endpoint_disposition: [RECEIVED]
variable_call_uuid: [0ed7287e-f698-46c8-9317-f48441f69147]
variable_gs_account_node_local: [true]
variable_current_application_data: [notice]
variable_current_application: [info]


2013-04-24 13:15:13.807443 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] AUTH_GATEWAY - sip_received_ip ~ ^10.49.1.3$, gateway=1, name: Alcatel, ip: 10.49.1.3
2013-04-24 13:15:13.807443 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] CALLER_DATA - no data - unauthenticated call: /
2013-04-24 13:15:13.807443 [NOTICE] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] INBOUND - no route
2013-04-24 13:15:13.807443 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] DESTINATION_NEW - sipaccount=5/@1, number: 6071
2013-04-24 13:15:13.807443 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] DIALPLAN start - caller_id: 1768 "Dirk" , number: 6071, language: de
2013-04-24 13:15:13.807443 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] LOOP 1 - destination: sipaccount=5/@1, number: 6071
2013-04-24 13:15:13.807443 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] FORK 1/1 - sipaccount=5/@1, number: 6071, caller_id: "" <1768>
2013-04-24 13:15:13.807443 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] CALL_WAITING - status: disabled, sip_account state:
2013-04-24 13:15:13.807443 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] FORK DIAL - destinations: 1, timeout: 120
2013-04-24 13:15:13.807443 [NOTICE] switch_channel.c:976 New Channel sofia/gemeinschaft/d5d0b72fc2daa3511a0c [4b391b63-cf9e-48b9-b1b7-52aab29505da]
2013-04-24 13:15:13.807443 [NOTICE] switch_channel.c:976 New Channel pickup/g4 [1852a7b6-0f90-41de-9a0d-a20737386c90]
2013-04-24 13:15:13.807443 [NOTICE] switch_channel.c:976 New Channel pickup/s5 [0e18b3e4-64e5-4ca8-9461-edf489031a50]
2013-04-24 13:15:13.827661 [INFO] switch_cpp.cpp:1274 #E# [4b391b63-cf9e-48b9-b1b7-52aab29505da] PRESENCE_OUTBOUND: account: d5d0b72fc2daa3511a0c, state: progressing, caller: 1768
2013-04-24 13:15:13.827661 [NOTICE] sofia.c:5689 Ring-Ready sofia/gemeinschaft/d5d0b72fc2daa3511a0c!
2013-04-24 13:15:13.847443 [INFO] switch_ivr_originate.c:1185 Sending early media
2013-04-24 13:15:13.847443 [NOTICE] mod_sofia.c:2813 Pre-Answer sofia/gemeinschaft/17...@10.49.1.3!
2013-04-24 13:15:18.627444 [NOTICE] sofia.c:6349 Channel [sofia/gemeinschaft/d5d0b72fc2daa3511a0c] has been answered
2013-04-24 13:15:18.627444 [INFO] switch_cpp.cpp:1274 #E# [4b391b63-cf9e-48b9-b1b7-52aab29505da] PRESENCE_OUTBOUND: account: d5d0b72fc2daa3511a0c, state: active, caller: 1768
2013-04-24 13:15:18.647439 [NOTICE] switch_ivr_originate.c:3379 Hangup pickup/g4 [CS_CONSUME_MEDIA] [LOSE_RACE]
2013-04-24 13:15:18.647439 [NOTICE] switch_ivr_originate.c:3379 Hangup pickup/s5 [CS_CONSUME_MEDIA] [LOSE_RACE]
2013-04-24 13:15:18.647439 [NOTICE] switch_ivr_originate.c:3406 Channel [sofia/gemeinschaft/17...@10.49.1.3] has been answered
2013-04-24 13:15:18.647439 [INFO] switch_cpp.cpp:1274 #E# [0ed7287e-f698-46c8-9317-f48441f69147] PRESENCE_INBOUND: account: 1768, state: active
2013-04-24 13:15:18.647439 [NOTICE] switch_core_session.c:1536 Session 3 (pickup/g4) Ended
2013-04-24 13:15:18.647439 [NOTICE] switch_core_session.c:1540 Close Channel pickup/g4 [CS_DESTROY]
2013-04-24 13:15:18.647439 [NOTICE] switch_core_session.c:1536 Session 4 (pickup/s5) Ended
2013-04-24 13:15:18.647439 [NOTICE] switch_core_session.c:1540 Close Channel pickup/s5 [CS_DESTROY]
2013-04-24 13:15:18.647439 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] FORK ANSWER - status: SUCCESS, dial_time: 5
2013-04-24 13:15:18.647439 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] FORK 1 BYPASS_MEDIA - caller_ip: 10.49.1.3, callee_ip: 10.49.95.189, subnet: 10.49.0.0/16, uuid: 0ed7287e-f698-46c8-9317-f48441f69147, bleg_uuid: 4b391b63-cf9e-48b9-b1b7-52aab29505da
2013-04-24 13:15:18.647439 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] FORK 1 BRIDGE - destination: sipaccount=5/@1, number: 6071, dial_time: 5
2013-04-24 13:15:18.647439 [NOTICE] sofia.c:6404 Hangup sofia/gemeinschaft/d5d0b72fc2daa3511a0c [CS_HIBERNATE] [MANDATORY_IE_MISSING]
2013-04-24 13:15:18.647439 [WARNING] switch_cpp.cpp:1274 #E# [perimeter] PERIMETER_CHECK - no event/key
2013-04-24 13:15:18.647439 [INFO] switch_cpp.cpp:1274 #E# [4b391b63-cf9e-48b9-b1b7-52aab29505da] PRESENCE_OUTBOUND: account: d5d0b72fc2daa3511a0c, state: idle, caller: 1768
2013-04-24 13:15:19.147440 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] FORK EXIT - disposition: SUCCESS, cause: MANDATORY_IE_MISSING, code: 503, phrase: Service Unavailable, dial_time: 6
2013-04-24 13:15:19.147440 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] DIALPLAN end - caller_id: 1768 "Dirk", destination: sipaccount=5/@1, number: 6071, result: 503 Service Unavailable
2013-04-24 13:15:19.167480 [NOTICE] mod_sofia.c:2690 Hangup sofia/gemeinschaft/17...@10.49.1.3 [CS_EXECUTE] [NORMAL_TEMPORARY_FAILURE]
2013-04-24 13:15:19.167480 [INFO] switch_cpp.cpp:1274 ### [0ed7287e-f698-46c8-9317-f48441f69147] HANGUP_HOOK: hangup
2013-04-24 13:15:19.167480 [NOTICE] switch_core_session.c:1536 Session 2 (sofia/gemeinschaft/d5d0b72fc2daa3511a0c) Ended
2013-04-24 13:15:19.167480 [NOTICE] switch_core_session.c:1540 Close Channel sofia/gemeinschaft/d5d0b72fc2daa3511a0c [CS_DESTROY]
2013-04-24 13:15:19.167480 [NOTICE] switch_core_session.c:1536 Session 1 (sofia/gemeinschaft/17...@10.49.1.3) Ended
2013-04-24 13:15:19.167480 [NOTICE] switch_core_session.c:1540 Close Channel sofia/gemeinschaft/17...@10.49.1.3 [CS_DESTROY]
2013-04-24 13:15:19.167480 [INFO] switch_cpp.cpp:1274 #E# [0ed7287e-f698-46c8-9317-f48441f69147] PRESENCE_INBOUND: account: 1768, state: idle
2013-04-24 13:15:19.167480 [INFO] switch_cpp.cpp:1274 #E# [0ed7287e-f698-46c8-9317-f48441f69147] CDR_SAVE - account: NULL=NULL, caller: "1768" "Dirk", callee: "6071" "Dirk", cause: "NORMAL_TEMPORARY_FAILURE"
2013-04-24 13:15:19.167480 [INFO] switch_cpp.cpp:1274 #E# [0ed7287e-f698-46c8-9317-f48441f69147] CALL_HISTORY_SAVE - ignore caller entry - account: =0, local: true
2013-04-24 13:15:19.167480 [INFO] switch_cpp.cpp:1274 #E# [0ed7287e-f698-46c8-9317-f48441f69147] CALL_HISTORY_SAVE received - account: sipaccount=5, caller: "1768" "Dirk", callee: "6071" "Dirk", result: "NORMAL_TEMPORARY_FAILURE"

Das bypass Media Netz hat er drin aber danach läuft irgendwie in einen Fehler....


Am Mittwoch, 24. April 2013 13:24:57 UTC+2 schrieb Peter Kozak:
On 04/24/2013 01:22 PM, Housebuilder wrote:
> Funktioniert leider nicht, GS5 legt dann nach dem Annehmen einfach auf.

Was steht dazu im Log? Vielleichti ist es ja ein Bug.


Mit freundlichen Gr��en

Peter Kozak

--

AMOOMA GmbH - Bachstr. 124 - 56566 Neuwied  -->  http://www.amooma.de
Gesch�ftsf�hrer: Stefan Wintermeyer, Handelsregister Montabaur B14998

B�cher: http://das-asterisk-buch.de - http://ruby-auf-schienen.de
Reply all
Reply to author
Forward
0 new messages