wiki:audio-how-to-record

Version 1 (modified by bennylp, 14 years ago) (diff)

--

How to Record Audio with pjsua

pjsua can record any audio coming into the conference bridge to a WAV or MP3 file (MP3 file recording is only available on Win32 though). But for reporting audio problems, it's best to use a WAV file instead of MP3 so that we can be perfectly sure that the original signal is not altered by MP3 encoding.

To record audio with pjsua:

  1. Run pjsua with additional --rec-file argument:
     $ ./pjsua --rec-file OUTPUT.WAV
    
  2. You should see that the file has been registered to the conference bridge with cl command:
    >>> cl
    Conference ports:
    Port #00[16KHz/10ms] Primary Sound Capture Driver  transmitting to:
    Port #01[16KHz/10ms]           OUTPUT.WAV  transmitting to:
    
  3. Make a call and establish media as usual.
  4. When the call is established, normally you will have the call is "connected" to the sound device in the bridge. This can be confirmed with the cl command below:
    cl
    Conference ports:
    Port #00[16KHz/10ms] Primary Sound Capture Driver  transmitting to: #2
    Port #01[16KHz/10ms]           OUTPUT.WAV  transmitting to:
    Port #02[16KHz/20ms]   sip:user@localhost  transmitting to: #0
    
  5. All you need to do now is connect whatever port you want to record to the OUTPUT.WAV port. For example, if you want to record the audio from remote call to the WAV, this command would achieve that:
    >>> cc 2 1
     09:40:08.969   conference.c Port 2 (sip:user@localhost) transmitting to port 1
    (OUTPUT.WAV)
    Success
    
  6. You can also, for example, record the audio from the microphone to the WAV file:
    >>> cc 0 1
     09:40:47.894   conference.c Port 0 (Primary Sound Capture Driver) transmitting
    to port 1 (OUTPUT.WAV)
    Success
    
  7. Now both the audio from the remote call and the audio from the microphone will be recorded to the WAV file. You can confirm this with cl command:
    >>> cl
    Conference ports:
    Port #00[16KHz/10ms] Primary Sound Capture Driver  transmitting to: #2 #1
    Port #01[16KHz/10ms]           OUTPUT.WAV  transmitting to:
    Port #02[16KHz/20ms]   sip:user@localhost  transmitting to: #0 #1
    

As you can see from above output, both the sound device (port 0) and the call (port 2) are both transmitting to the WAV file, thus it will be recorded.