2013-11-21 4 views
5

Quindi, utilizzando una sintassi simileRiproduzione file audio utilizzando SIPP

../sipp -sn uac SERVER_IP -s DESTINATION_NUMBER -ap AUTH_PASSWORD -aa -m 1 -l 1 -d 10000 

sono in grado di avviare una chiamata SIP. Quello che voglio ottenere è, dopo che il destinatario ha chiamato la chiamata, riprodurre un file .wav e terminare la chiamata al termine della riproduzione del file.

Voglio ottenere ciò utilizzando gli argomenti della riga di comando. Qualcuno l'ha già fatto prima?

risposta

2

SIPp supporta la capacità di send a stream of pre-recorded RTP packets tramite la direttiva exec play_pcap_audio. (Vedere lo scenario uac_pcap integrato come modello per lo scenario.) I pacchetti da inviare sono memorizzati in un file con formato PCAP. I pacchetti possono essere extracted from a Wireshark capture di una chiamata di prova, ad esempio.

$ sipp -sf custom_with_pcap_audio.xml SERVER_IP -s DESTINATION_NUMBER -ap AUTH_PASSWORD -aa -m 1 -l 1 -d 10000 

Per creare custom_with_pcap_audio.xml, cominciare da qui:

$ sipp -sd uac_pcap > custom_with_pcap_audio.xml 

quindi modificare lo scenario per fare riferimento al file pcap (ottenuto tramite una delle tecniche precedentemente collegate). Sarà inoltre necessario impostare il ritardo sulla lunghezza appropriata per la registrazione del pcap (piuttosto che sul 10000 indicato nell'esempio).

+0

Grazie per la risposta, ma non era alla ricerca di link utili a manuali. Puoi presumere che li abbia già passati. –

+0

Per rispondere con precisione alla tua domanda: sì, puoi farlo con gli argomenti della riga di comando e le persone lo hanno già fatto. Per espandere questa risposta per essere più utile, è necessario anche creare un file di scenario personalizzato e un file pcap, come descritto nella risposta. Aggiungerò linee di comando di esempio alla risposta. – yotommy

+0

grazie per la tua risposta. È possibile riprodurre un file pcm wav o raw piuttosto che un file pcap che è più complesso da creare? –

9

L'ultima versione SIPp (3.4) ora supporta lo streaming RTP diretto, da un file WAV con la codifica corretta.

Ti consigliamo di creare un file di scenario personalizzato (utilizzando l'opzione -sd uac per scaricare la scenario di esempio UAC come punto di partenza) e aggiungere <action><exec rtp_stream="file.wav" /></action> all'interno del blocco <recv response="200"></recv> XML, per innescare quel file WAV da riprodurre su RTP quando viene ricevuto il 200 OK.

http://sipp.sourceforge.net/doc/reference.html#Media%2FRTP+commands ha ulteriori dettagli sull'impostazione (come il ciclo o tipi di payload non PCMA).

(io sono l'attuale responsabile della Sipp.)

+1

Produrre un WAV con codifica corretta da campioni audio non è stato auto esplicativo per me. Ho passato molto tempo fino a quando ho scoperto come ricodificare e convertirli usando gstreamer. gst-launch filesrc location = piano1.wav \ ! wavparse \ ! audioconvert \ ! audioresample \ ! alawenc \ ! audio/x-alaw, rate = 8000, channels = 1 \ ! wavenc \ ! filesink location = piano2.wav Speriamo che questo salvi qualcuno al momento della scoperta –

+0

@JosiahDeWitt. Ho provato il tuo suggerimento senza fortuna. Ottengo sempre un audio criptato. Potete per favore controllare questa domanda http://stackoverflow.com/questions/39332306/how-to-encode-wav-to-play-with-sipp? – douglaslps