How to play a "splash-tone" file as soon as posssible in the call sequence

BB
Brunner, Brian T.
Fri, Oct 24, 2014 2:50 PM

My attempts (which have been many and unsuccessful) lead me to beg:
How can my SoftVoIPPhone pick up the call and play a "splash tone" or "please leave your message after the tone" file from the hard drive to the caller?

I create a player, and I connect it to the conference, but clearly not the right way or right time.


Confidentiality Requirement: This communication, including any attachment(s), may contain confidential information and is for the sole use of the intended recipient(s). If you are not the intended recipient, you are hereby notified that you have received this communication in error and any unauthorized review, use, disclosure, dissemination, distribution or copying of it or its contents is strictly prohibited.  If you have received this communication in error, please notify the sender immediately by telephone or e-mail and destroy all copies of this communication and any attachments.

My attempts (which have been many and unsuccessful) lead me to beg: How can my SoftVoIPPhone pick up the call and play a "splash tone" or "please leave your message after the tone" file from the hard drive to the caller? I create a player, and I connect it to the conference, but clearly not the right way or right time. ---------------------------------------------------------------------------------------------------------------------------- Confidentiality Requirement: This communication, including any attachment(s), may contain confidential information and is for the sole use of the intended recipient(s). If you are not the intended recipient, you are hereby notified that you have received this communication in error and any unauthorized review, use, disclosure, dissemination, distribution or copying of it or its contents is strictly prohibited. If you have received this communication in error, please notify the sender immediately by telephone or e-mail and destroy all copies of this communication and any attachments.
BG
Bill Gardner
Fri, Oct 24, 2014 7:47 PM

Creating a player and connecting to the conference should work, perhaps
you can share some code?

On 10/24/2014 10:50 AM, Brunner, Brian T. wrote:

My attempts (which have been many and unsuccessful) lead me to beg:
How can my SoftVoIPPhone pick up the call and play a "splash tone" or
"please leave your message after the tone" file from the hard drive to
the caller?

I create a player, and I connect it to the conference, but clearly not
the right way or right time.



Confidentiality Requirement: This communication, including any
attachment(s), may contain confidential information and is for the
sole use of the intended recipient(s). If you are not the intended
recipient, you are hereby notified that you have received this
communication in error and any unauthorized review, use, disclosure,
dissemination, distribution or copying of it or its contents is
strictly prohibited.  If you have received this communication in
error, please notify the sender immediately by telephone or e-mail and
destroy all copies of this communication and any attachments.


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

Creating a player and connecting to the conference should work, perhaps you can share some code? On 10/24/2014 10:50 AM, Brunner, Brian T. wrote: > > My attempts (which have been many and unsuccessful) lead me to beg: > How can my SoftVoIPPhone pick up the call and play a "splash tone" or > "please leave your message after the tone" file from the hard drive to > the caller? > > I create a player, and I connect it to the conference, but clearly not > the right way or right time. > > > > > ------------------------------------------------------------------------ > > ---------------------------------------------------------------------------------------------------------------------------- > > > Confidentiality Requirement: This communication, including any > attachment(s), may contain confidential information and is for the > sole use of the intended recipient(s). If you are not the intended > recipient, you are hereby notified that you have received this > communication in error and any unauthorized review, use, disclosure, > dissemination, distribution or copying of it or its contents is > strictly prohibited. If you have received this communication in > error, please notify the sender immediately by telephone or e-mail and > destroy all copies of this communication and any attachments. > > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
BB
Brunner, Brian T.
Mon, Oct 27, 2014 2:35 PM

I'm puzzled why you need to see broken code in order to tell me correct code?

Given a call_id, how do I tell which conference port to connect to, in order to send a wav file to the caller?  So far I've managed to connect it to my sound hardware, which isn't much progress.

I'm curious which call-back is the earliest point in the call sequence wherein I'm able to tell which conference port to connect my player to (which I mentioned I'd created).

When we're agreed that my broken code is in the correct place (and therefore it is the code that is broken, not its location) lets look at broken code to see what I did wrong in the right place.

Is there an example of this process (I haven't found one yet)?


From: pjsip [pjsip-bounces@lists.pjsip.org] on behalf of Bill Gardner [billg@wavearts.com]
Sent: Friday, October 24, 2014 3:47 PM
To: pjsip@lists.pjsip.org
Subject: Re: [pjsip] How to play a "splash-tone" file as soon as posssible in the call sequence

Creating a player and connecting to the conference should work, perhaps you can share some code?

On 10/24/2014 10:50 AM, Brunner, Brian T. wrote:

My attempts (which have been many and unsuccessful) lead me to beg:
How can my SoftVoIPPhone pick up the call and play a "splash tone" or "please leave your message after the tone" file from the hard drive to the caller?

I create a player, and I connect it to the conference, but clearly not the right way or right time.



Confidentiality Requirement: This communication, including any attachment(s), may contain confidential information and is for the sole use of the intended recipient(s). If you are not the intended recipient, you are hereby notified that you have received this communication in error and any unauthorized review, use, disclosure, dissemination, distribution or copying of it or its contents is strictly prohibited.  If you have received this communication in error, please notify the sender immediately by telephone or e-mail and destroy all copies of this communication and any attachments.


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.orgmailto:pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

I'm puzzled why you need to see broken code in order to tell me correct code? Given a call_id, how do I tell which conference port to connect to, in order to send a wav file to the caller? So far I've managed to connect it to my sound hardware, which isn't much progress. I'm curious which call-back is the earliest point in the call sequence wherein I'm able to tell which conference port to connect my player to (which I mentioned I'd created). When we're agreed that my broken code is in the correct place (and therefore it is the code that is broken, not its location) lets look at broken code to see what I did wrong in the right place. Is there an example of this process (I haven't found one yet)? ________________________________ From: pjsip [pjsip-bounces@lists.pjsip.org] on behalf of Bill Gardner [billg@wavearts.com] Sent: Friday, October 24, 2014 3:47 PM To: pjsip@lists.pjsip.org Subject: Re: [pjsip] How to play a "splash-tone" file as soon as posssible in the call sequence Creating a player and connecting to the conference should work, perhaps you can share some code? On 10/24/2014 10:50 AM, Brunner, Brian T. wrote: My attempts (which have been many and unsuccessful) lead me to beg: How can my SoftVoIPPhone pick up the call and play a "splash tone" or "please leave your message after the tone" file from the hard drive to the caller? I create a player, and I connect it to the conference, but clearly not the right way or right time. ________________________________ ---------------------------------------------------------------------------------------------------------------------------- Confidentiality Requirement: This communication, including any attachment(s), may contain confidential information and is for the sole use of the intended recipient(s). If you are not the intended recipient, you are hereby notified that you have received this communication in error and any unauthorized review, use, disclosure, dissemination, distribution or copying of it or its contents is strictly prohibited. If you have received this communication in error, please notify the sender immediately by telephone or e-mail and destroy all copies of this communication and any attachments. _______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip@lists.pjsip.org<mailto:pjsip@lists.pjsip.org> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
BG
Bill Gardner
Mon, Oct 27, 2014 6:16 PM

See pjsua_app.c for example on how to create player and connect to
conference when call answers. It's all part of the --auto-play option in
pjsua.

On 10/27/2014 10:35 AM, Brunner, Brian T. wrote:

I'm puzzled why you need to see broken code in order to tell me
correct code?

Given a call_id, how do I tell which conference port to connect to, in
order to send a wav file to the caller?  So far I've managed to
connect it to my sound hardware, which isn't much progress.

I'm curious which call-back is the earliest point in the call sequence
wherein I'm able to tell which conference port to connect my player to
(which I mentioned I'd created).

When we're agreed that my broken code is in the correct place (and
therefore it is the code that is broken, not its location) lets look
at broken code to see what I did wrong in the right place.

Is there an example of this process (I haven't found one yet)?

From: pjsip [pjsip-bounces@lists.pjsip.org] on behalf of Bill
Gardner [billg@wavearts.com]
Sent: Friday, October 24, 2014 3:47 PM
To: pjsip@lists.pjsip.org
Subject: Re: [pjsip] How to play a "splash-tone" file as soon as
posssible in the call sequence

Creating a player and connecting to the conference should work,
perhaps you can share some code?

On 10/24/2014 10:50 AM, Brunner, Brian T. wrote:

My attempts (which have been many and unsuccessful) lead me to beg:
How can my SoftVoIPPhone pick up the call and play a "splash tone" or
"please leave your message after the tone" file from the hard drive
to the caller?

I create a player, and I connect it to the conference, but clearly
not the right way or right time.



Confidentiality Requirement: This communication, including any
attachment(s), may contain confidential information and is for the
sole use of the intended recipient(s). If you are not the intended
recipient, you are hereby notified that you have received this
communication in error and any unauthorized review, use, disclosure,
dissemination, distribution or copying of it or its contents is
strictly prohibited.  If you have received this communication in
error, please notify the sender immediately by telephone or e-mail
and destroy all copies of this communication and any attachments.


Visit our blog:http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

See pjsua_app.c for example on how to create player and connect to conference when call answers. It's all part of the --auto-play option in pjsua. On 10/27/2014 10:35 AM, Brunner, Brian T. wrote: > I'm puzzled why you need to see broken code in order to tell me > correct code? > > Given a call_id, how do I tell which conference port to connect to, in > order to send a wav file to the caller? So far I've managed to > connect it to my sound hardware, which isn't much progress. > > I'm curious which call-back is the earliest point in the call sequence > wherein I'm able to tell which conference port to connect my player to > (which I mentioned I'd created). > > When we're agreed that my broken code is in the correct place (and > therefore it is the code that is broken, not its location) lets look > at broken code to see what I did wrong in the right place. > > Is there an example of this process (I haven't found one yet)? > ------------------------------------------------------------------------ > *From:* pjsip [pjsip-bounces@lists.pjsip.org] on behalf of Bill > Gardner [billg@wavearts.com] > *Sent:* Friday, October 24, 2014 3:47 PM > *To:* pjsip@lists.pjsip.org > *Subject:* Re: [pjsip] How to play a "splash-tone" file as soon as > posssible in the call sequence > > Creating a player and connecting to the conference should work, > perhaps you can share some code? > > On 10/24/2014 10:50 AM, Brunner, Brian T. wrote: >> >> My attempts (which have been many and unsuccessful) lead me to beg: >> How can my SoftVoIPPhone pick up the call and play a "splash tone" or >> "please leave your message after the tone" file from the hard drive >> to the caller? >> >> I create a player, and I connect it to the conference, but clearly >> not the right way or right time. >> >> >> >> >> ------------------------------------------------------------------------ >> >> ---------------------------------------------------------------------------------------------------------------------------- >> >> >> Confidentiality Requirement: This communication, including any >> attachment(s), may contain confidential information and is for the >> sole use of the intended recipient(s). If you are not the intended >> recipient, you are hereby notified that you have received this >> communication in error and any unauthorized review, use, disclosure, >> dissemination, distribution or copying of it or its contents is >> strictly prohibited. If you have received this communication in >> error, please notify the sender immediately by telephone or e-mail >> and destroy all copies of this communication and any attachments. >> >> >> >> _______________________________________________ >> Visit our blog:http://blog.pjsip.org >> >> pjsip mailing list >> pjsip@lists.pjsip.org >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
BB
Brunner, Brian T.
Thu, Oct 30, 2014 8:49 PM

Whilst studying the pjproject-2.2.1/pjsip-apps/src/pjsua files for how to cause a "PleaseLeaveYourMessage auto-play to happen, a few things:
1: my app (running on ARM7) receives my test call from a company digital phone via a gateway; this should make no difference.
You asked for example code; after applying what I could grasp from the auto-play example, here's what I think should work but doesn't (with lots trimmed out)
if ((status = pjsua_create()) != PJ_SUCCESS) SleepForever("Can't create PJSUA, is it already running?",status);
if ((status = pjsua_verify_url(LV.MyURI)) != PJ_SUCCESS) SleepForever("Fix your bad URI, Doofus!",status);
if ((status = pjsua_init(&ep_cfg, &ep_logging_cfg, NULL))  != PJ_SUCCESS) SleepForever("Error in pjsua_init()", status);
if ((status = pjsip_endpt_register_module(pjsua_get_pjsip_endpt(), &mod_default_handler)) != PJ_SUCCESS) SleepForever("Can't register Endpoint", status);
if ((status = pjsua_player_create(&LV.PleaseLeaveYourMessage, PJMEDIA_FILE_NO_LOOP, &LV.Player_id)) != PJ_SUCCESS) SleepForever("Can't create SplashPlayer",status);
LV.PlayerConferencePortNo = pjsua_player_get_conf_port(LV.Player_id);
pjsua_player_get_port(LV.Player_id, &LV.SplashPort);
if ((status = pjmedia_wav_player_set_eof_cb(LV.SplashPort, NULL, &on_playfile_done)) != PJ_SUCCESS) SleepForever("Can't set eof cb",status);
if ((status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &tcfg, NULL)) != PJ_SUCCESS) SleepForever("Can't create transport, bad config data?",status);
if ((status = pjsua_acc_add(&acct_cfg, PJ_TRUE, &LV.MyAcctId)) != PJ_SUCCESS) SleepForever("Can't create account (you are a no-account!)",status);
if ((status = pjsua_start()) != PJ_SUCCESS) SleepForever("Can't start pjsua.  Need more chocolate?",status);

The callbacks that appear to matter (with lots trimmed out, you don't want to read a book):
void cb_on_incoming_call(pjsua_acc_id acc_id, pjsua_call_id call_id, pjsip_rx_data *rdata)
{
pjsua_call_answer(call_id, 200, NULL, NULL);
}
static void cb_on_call_media_state(pjsua_call_id call_id)
{
pjsua_call_info CallInfo; pjsua_call_get_info(call_id, &CallInfo);
unsigned MediaIndex; for (MediaIndex = 0; MediaIndex < CallInfo.media_cnt;MediaIndex++)
{
switch (CallInfo.media[MediaIndex].type)
{
case PJMEDIA_TYPE_AUDIO:
pjsua_conf_connect(LV.PlayerConferencePortNo, CallInfo.media[MediaIndex].stream.aud.conf_slot);
}
}
}

Then I pick up my phone, dial the gateway, and (when it gives dial tone) dial this softphone.  No "PleaseLeaveYourMessage" plays, but I can here the softphone hang up on me when the timeout expires.

2: running /usr/bin/pjsip-test-arm-poky-linux-gnueabi -l 6 logs an error and quits.
line 918060 of 918085.
I can't tell where one test ends and another begins (hint/beg of benny: please number the tests and print out the number so I can say "test 4373 failed; it said "foobar" when it should have said "mumble", and we'd be on the same page together.
Instead:
20:02:58.879 Sending Response msg 200/INVITE/cseq=47769 (tdta0xb8c510) in state Proceeding
20:02:58.879 .Destroying txdata Response msg 100/INVITE/cseq=47769 (tdta0xb93548)
20:02:58.879 .TX 321 bytes Response msg 200/INVITE/cseq=47769 (tdta0xb8c510) to LOOP-DGRAM:0.0.0.0:0:
SIP/2.0 200 OK^M
Via: SIP/2.0/LOOP-DGRAM 129.0.0.1:15060;rport=15060;received=129.0.0.1;branch=z9hG4bK-UAS-Test11^M
Call-ID: 82e44fbf-330c-4350-8d46-773a2226cba8^M
From: sip:alice@127.0.0.1;tag=d71eff2a-a70f-4e7c-9151-a3a8a2f5e2f4^M
To: sip:bob@127.0.0.1;tag=z9hG4bK-UAS-Test11^M
CSeq: 47769 INVITE^M
Content-Length:  0^M
^M

--end msg--
20:02:58.879 .State changed from Proceeding to Completed, event=TX_MSG
20:02:58.930 Transport failed to send Response msg 200/INVITE/cseq=47769 (tdta0xb8c510)! Err=120104 (Connection reset by peer)
20:02:58.932 State changed from Completed to Terminated, event=TRANSPORT_ERROR
20:02:58.932    error: incorrect status code
20:02:58.932 Timeout timer event
20:02:58.932 .State changed from Terminated to Destroyed, event=TIMER
20:02:58.932 ..Destroying txdata Response msg 200/INVITE/cseq=47769 (tdta0xb8c510)
20:02:58.932 Transaction destroyed!
20:02:58.933 ..ERROR(-170)


From: pjsip [pjsip-bounces@lists.pjsip.org] on behalf of Bill Gardner [billg@wavearts.com]
Sent: Monday, October 27, 2014 2:16 PM
To: pjsip@lists.pjsip.org
Subject: Re: [pjsip] How to play a "splash-tone" file as soon as posssible in the call sequence

See pjsua_app.c for example on how to create player and connect to conference when call answers. It's all part of the --auto-play option in pjsua.

On 10/27/2014 10:35 AM, Brunner, Brian T. wrote:
I'm puzzled why you need to see broken code in order to tell me correct code?

Given a call_id, how do I tell which conference port to connect to, in order to send a wav file to the caller?  So far I've managed to connect it to my sound hardware, which isn't much progress.

I'm curious which call-back is the earliest point in the call sequence wherein I'm able to tell which conference port to connect my player to (which I mentioned I'd created).

When we're agreed that my broken code is in the correct place (and therefore it is the code that is broken, not its location) lets look at broken code to see what I did wrong in the right place.

Is there an example of this process (I haven't found one yet)?


From: pjsip [pjsip-bounces@lists.pjsip.orgmailto:pjsip-bounces@lists.pjsip.org] on behalf of Bill Gardner [billg@wavearts.commailto:billg@wavearts.com]
Sent: Friday, October 24, 2014 3:47 PM
To: pjsip@lists.pjsip.orgmailto:pjsip@lists.pjsip.org
Subject: Re: [pjsip] How to play a "splash-tone" file as soon as posssible in the call sequence

Creating a player and connecting to the conference should work, perhaps you can share some code?

On 10/24/2014 10:50 AM, Brunner, Brian T. wrote:

My attempts (which have been many and unsuccessful) lead me to beg:
How can my SoftVoIPPhone pick up the call and play a "splash tone" or "please leave your message after the tone" file from the hard drive to the caller?

I create a player, and I connect it to the conference, but clearly not the right way or right time.



Confidentiality Requirement: This communication, including any attachment(s), may contain confidential information and is for the sole use of the intended recipient(s). If you are not the intended recipient, you are hereby notified that you have received this communication in error and any unauthorized review, use, disclosure, dissemination, distribution or copying of it or its contents is strictly prohibited.  If you have received this communication in error, please notify the sender immediately by telephone or e-mail and destroy all copies of this communication and any attachments.


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.orgmailto:pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.orgmailto:pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

Whilst studying the pjproject-2.2.1/pjsip-apps/src/pjsua files for how to cause a "PleaseLeaveYourMessage auto-play to happen, a few things: 1: my app (running on ARM7) receives my test call from a company digital phone via a gateway; this should make no difference. You asked for example code; after applying what I could grasp from the auto-play example, here's what I think should work but doesn't (with lots trimmed out) if ((status = pjsua_create()) != PJ_SUCCESS) SleepForever("Can't create PJSUA, is it already running?",status); if ((status = pjsua_verify_url(LV.MyURI)) != PJ_SUCCESS) SleepForever("Fix your bad URI, Doofus!",status); if ((status = pjsua_init(&ep_cfg, &ep_logging_cfg, NULL)) != PJ_SUCCESS) SleepForever("Error in pjsua_init()", status); if ((status = pjsip_endpt_register_module(pjsua_get_pjsip_endpt(), &mod_default_handler)) != PJ_SUCCESS) SleepForever("Can't register Endpoint", status); if ((status = pjsua_player_create(&LV.PleaseLeaveYourMessage, PJMEDIA_FILE_NO_LOOP, &LV.Player_id)) != PJ_SUCCESS) SleepForever("Can't create SplashPlayer",status); LV.PlayerConferencePortNo = pjsua_player_get_conf_port(LV.Player_id); pjsua_player_get_port(LV.Player_id, &LV.SplashPort); if ((status = pjmedia_wav_player_set_eof_cb(LV.SplashPort, NULL, &on_playfile_done)) != PJ_SUCCESS) SleepForever("Can't set eof cb",status); if ((status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &tcfg, NULL)) != PJ_SUCCESS) SleepForever("Can't create transport, bad config data?",status); if ((status = pjsua_acc_add(&acct_cfg, PJ_TRUE, &LV.MyAcctId)) != PJ_SUCCESS) SleepForever("Can't create account (you are a no-account!)",status); if ((status = pjsua_start()) != PJ_SUCCESS) SleepForever("Can't start pjsua. Need more chocolate?",status); The callbacks that appear to matter (with lots trimmed out, you don't want to read a book): void cb_on_incoming_call(pjsua_acc_id acc_id, pjsua_call_id call_id, pjsip_rx_data *rdata) { pjsua_call_answer(call_id, 200, NULL, NULL); } static void cb_on_call_media_state(pjsua_call_id call_id) { pjsua_call_info CallInfo; pjsua_call_get_info(call_id, &CallInfo); unsigned MediaIndex; for (MediaIndex = 0; MediaIndex < CallInfo.media_cnt;MediaIndex++) { switch (CallInfo.media[MediaIndex].type) { case PJMEDIA_TYPE_AUDIO: pjsua_conf_connect(LV.PlayerConferencePortNo, CallInfo.media[MediaIndex].stream.aud.conf_slot); } } } Then I pick up my phone, dial the gateway, and (when it gives dial tone) dial this softphone. No "PleaseLeaveYourMessage" plays, but I can here the softphone hang up on me when the timeout expires. 2: running /usr/bin/pjsip-test-arm-poky-linux-gnueabi -l 6 logs an error and quits. line 918060 of 918085. I can't tell where one test ends and another begins (hint/beg of benny: please number the tests and print out the number so I can say "test 4373 failed; it said "foobar" when it should have said "mumble", and we'd be on the same page together. Instead: 20:02:58.879 Sending Response msg 200/INVITE/cseq=47769 (tdta0xb8c510) in state Proceeding 20:02:58.879 .Destroying txdata Response msg 100/INVITE/cseq=47769 (tdta0xb93548) 20:02:58.879 .TX 321 bytes Response msg 200/INVITE/cseq=47769 (tdta0xb8c510) to LOOP-DGRAM:0.0.0.0:0: SIP/2.0 200 OK^M Via: SIP/2.0/LOOP-DGRAM 129.0.0.1:15060;rport=15060;received=129.0.0.1;branch=z9hG4bK-UAS-Test11^M Call-ID: 82e44fbf-330c-4350-8d46-773a2226cba8^M From: <sip:alice@127.0.0.1>;tag=d71eff2a-a70f-4e7c-9151-a3a8a2f5e2f4^M To: <sip:bob@127.0.0.1>;tag=z9hG4bK-UAS-Test11^M CSeq: 47769 INVITE^M Content-Length: 0^M ^M --end msg-- 20:02:58.879 .State changed from Proceeding to Completed, event=TX_MSG 20:02:58.930 Transport failed to send Response msg 200/INVITE/cseq=47769 (tdta0xb8c510)! Err=120104 (Connection reset by peer) 20:02:58.932 State changed from Completed to Terminated, event=TRANSPORT_ERROR 20:02:58.932 error: incorrect status code 20:02:58.932 Timeout timer event 20:02:58.932 .State changed from Terminated to Destroyed, event=TIMER 20:02:58.932 ..Destroying txdata Response msg 200/INVITE/cseq=47769 (tdta0xb8c510) 20:02:58.932 Transaction destroyed! 20:02:58.933 ..ERROR(-170) ________________________________ From: pjsip [pjsip-bounces@lists.pjsip.org] on behalf of Bill Gardner [billg@wavearts.com] Sent: Monday, October 27, 2014 2:16 PM To: pjsip@lists.pjsip.org Subject: Re: [pjsip] How to play a "splash-tone" file as soon as posssible in the call sequence See pjsua_app.c for example on how to create player and connect to conference when call answers. It's all part of the --auto-play option in pjsua. On 10/27/2014 10:35 AM, Brunner, Brian T. wrote: I'm puzzled why you need to see broken code in order to tell me correct code? Given a call_id, how do I tell which conference port to connect to, in order to send a wav file to the caller? So far I've managed to connect it to my sound hardware, which isn't much progress. I'm curious which call-back is the earliest point in the call sequence wherein I'm able to tell which conference port to connect my player to (which I mentioned I'd created). When we're agreed that my broken code is in the correct place (and therefore it is the code that is broken, not its location) lets look at broken code to see what I did wrong in the right place. Is there an example of this process (I haven't found one yet)? ________________________________ From: pjsip [pjsip-bounces@lists.pjsip.org<mailto:pjsip-bounces@lists.pjsip.org>] on behalf of Bill Gardner [billg@wavearts.com<mailto:billg@wavearts.com>] Sent: Friday, October 24, 2014 3:47 PM To: pjsip@lists.pjsip.org<mailto:pjsip@lists.pjsip.org> Subject: Re: [pjsip] How to play a "splash-tone" file as soon as posssible in the call sequence Creating a player and connecting to the conference should work, perhaps you can share some code? On 10/24/2014 10:50 AM, Brunner, Brian T. wrote: My attempts (which have been many and unsuccessful) lead me to beg: How can my SoftVoIPPhone pick up the call and play a "splash tone" or "please leave your message after the tone" file from the hard drive to the caller? I create a player, and I connect it to the conference, but clearly not the right way or right time. ________________________________ ---------------------------------------------------------------------------------------------------------------------------- Confidentiality Requirement: This communication, including any attachment(s), may contain confidential information and is for the sole use of the intended recipient(s). If you are not the intended recipient, you are hereby notified that you have received this communication in error and any unauthorized review, use, disclosure, dissemination, distribution or copying of it or its contents is strictly prohibited. If you have received this communication in error, please notify the sender immediately by telephone or e-mail and destroy all copies of this communication and any attachments. _______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip@lists.pjsip.org<mailto:pjsip@lists.pjsip.org> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org _______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip@lists.pjsip.org<mailto:pjsip@lists.pjsip.org> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
PC
Per Cramer
Thu, Oct 30, 2014 9:01 PM

Hi,

has anybody ever tested or did something with pjsip and a vst audio plugin in the output chain of pjsip? I could do something with virtual audio cable, but shouldn't it be possible to use vast plugins directly in pjsip. Yes i know that it would require coding, and that is no problem for me. Just don't know where to start on windows. It uses directx for audio output? But i can't seem to find where the directx processing is done.

?Regards

Hi, has anybody ever tested or did something with pjsip and a vst audio plugin in the output chain of pjsip? I could do something with virtual audio cable, but shouldn't it be possible to use vast plugins directly in pjsip. Yes i know that it would require coding, and that is no problem for me. Just don't know where to start on windows. It uses directx for audio output? But i can't seem to find where the directx processing is done. ?Regards
BG
Bill Gardner
Thu, Oct 30, 2014 9:18 PM

Right, well I asked for the code and I got it, so I'd better respond. I
can see you're answering the call and connecting the player, so those
parts look correct, but it's hard to know if you are missing something
important in initialization. Do you have a logfile for the auto-answer
call? It should show whether the call is properly connected and may have
clues as to why the player isn't playing. For example, there may be a
problem with audio device that is preventing media flow.

Bill

On 10/30/2014 4:49 PM, Brunner, Brian T. wrote:

Whilst studying the pjproject-2.2.1/pjsip-apps/src/pjsua files for how
to cause a "PleaseLeaveYourMessage auto-play to happen, a few things:
1: my app (running on ARM7) receives my test call from a company
digital phone via a gateway; this should make no difference.
You asked for example code; after applying what I could grasp from
the auto-play example, here's what I think should work but doesn't
(with lots trimmed out)
if ((status = pjsua_create()) != PJ_SUCCESS) SleepForever("Can't
create PJSUA, is it already running?",status);
if ((status = pjsua_verify_url(LV.MyURI)) != PJ_SUCCESS)
SleepForever("Fix your bad URI, Doofus!",status);
if ((status = pjsua_init(&ep_cfg, &ep_logging_cfg, NULL))  !=
PJ_SUCCESS) SleepForever("Error in pjsua_init()", status);
if ((status = pjsip_endpt_register_module(pjsua_get_pjsip_endpt(),
&mod_default_handler)) != PJ_SUCCESS) SleepForever("Can't register
Endpoint", status);
if ((status = pjsua_player_create(&LV.PleaseLeaveYourMessage,
PJMEDIA_FILE_NO_LOOP, &LV.Player_id)) != PJ_SUCCESS)
SleepForever("Can't create SplashPlayer",status);
LV.PlayerConferencePortNo = pjsua_player_get_conf_port(LV.Player_id);
pjsua_player_get_port(LV.Player_id, &LV.SplashPort);
if ((status = pjmedia_wav_player_set_eof_cb(LV.SplashPort, NULL,
&on_playfile_done)) != PJ_SUCCESS) SleepForever("Can't set eof
cb",status);
if ((status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &tcfg,
NULL)) != PJ_SUCCESS) SleepForever("Can't create transport, bad config
data?",status);
if ((status = pjsua_acc_add(&acct_cfg, PJ_TRUE, &LV.MyAcctId)) !=
PJ_SUCCESS) SleepForever("Can't create account (you are a
no-account!)",status);
if ((status = pjsua_start()) != PJ_SUCCESS) SleepForever("Can't start
pjsua.  Need more chocolate?",status);

The callbacks that appear to matter (with lots trimmed out, you don't
want to read a book):
void cb_on_incoming_call(pjsua_acc_id acc_id, pjsua_call_id call_id,
pjsip_rx_data *rdata)
{
pjsua_call_answer(call_id, 200, NULL, NULL);
}
static void cb_on_call_media_state(pjsua_call_id call_id)
{
pjsua_call_info CallInfo; pjsua_call_get_info(call_id, &CallInfo);
unsigned MediaIndex; for (MediaIndex = 0; MediaIndex <
CallInfo.media_cnt;MediaIndex++)
{
switch (CallInfo.media[MediaIndex].type)
{
case PJMEDIA_TYPE_AUDIO:
pjsua_conf_connect(LV.PlayerConferencePortNo,
CallInfo.media[MediaIndex].stream.aud.conf_slot);
}
}
}

Then I pick up my phone, dial the gateway, and (when it gives dial
tone) dial this softphone.  No "PleaseLeaveYourMessage" plays, but I
can here the softphone hang up on me when the timeout expires.

2: running /usr/bin/pjsip-test-arm-poky-linux-gnueabi -l 6 logs an
error and quits.
line 918060 of 918085.
I can't tell where one test ends and another begins (hint/beg
of benny: please number the tests and print out the number so I can
say "test 4373 failed; it said "foobar" when it should have said
"mumble", and we'd be on the same page together.
Instead:
20:02:58.879 Sending Response msg 200/INVITE/cseq=47769 (tdta0xb8c510)
in state Proceeding
20:02:58.879 .Destroying txdata Response msg 100/INVITE/cseq=47769
(tdta0xb93548)
20:02:58.879 .TX 321 bytes Response msg 200/INVITE/cseq=47769
(tdta0xb8c510) to LOOP-DGRAM:0.0.0.0:0:
SIP/2.0 200 OK^M
Via: SIP/2.0/LOOP-DGRAM
129.0.0.1:15060;rport=15060;received=129.0.0.1;branch=z9hG4bK-UAS-Test11^M

Call-ID: 82e44fbf-330c-4350-8d46-773a2226cba8^M
From: sip:alice@127.0.0.1;tag=d71eff2a-a70f-4e7c-9151-a3a8a2f5e2f4^M
To: sip:bob@127.0.0.1;tag=z9hG4bK-UAS-Test11^M
CSeq: 47769 INVITE^M
Content-Length: 0^M
^M

--end msg--
20:02:58.879 .State changed from Proceeding to Completed, event=TX_MSG
20:02:58.930 Transport failed to send Response msg
200/INVITE/cseq=47769 (tdta0xb8c510)! Err=120104 (Connection reset by
peer)
20:02:58.932 State changed from Completed to Terminated,
event=TRANSPORT_ERROR
20:02:58.932    error: incorrect status code
20:02:58.932 Timeout timer event
20:02:58.932 .State changed from Terminated to Destroyed, event=TIMER
20:02:58.932 ..Destroying txdata Response msg 200/INVITE/cseq=47769
(tdta0xb8c510)
20:02:58.932 Transaction destroyed!
20:02:58.933 ..ERROR(-170)

From: pjsip [pjsip-bounces@lists.pjsip.org] on behalf of Bill
Gardner [billg@wavearts.com]
Sent: Monday, October 27, 2014 2:16 PM
To: pjsip@lists.pjsip.org
Subject: Re: [pjsip] How to play a "splash-tone" file as soon as
posssible in the call sequence

See pjsua_app.c for example on how to create player and connect to
conference when call answers. It's all part of the --auto-play option
in pjsua.

On 10/27/2014 10:35 AM, Brunner, Brian T. wrote:

I'm puzzled why you need to see broken code in order to tell me
correct code?

Given a call_id, how do I tell which conference port to connect to,
in order to send a wav file to the caller? So far I've managed to
connect it to my sound hardware, which isn't much progress.

I'm curious which call-back is the earliest point in the call
sequence wherein I'm able to tell which conference port to connect my
player to (which I mentioned I'd created).

When we're agreed that my broken code is in the correct place (and
therefore it is the code that is broken, not its location) lets look
at broken code to see what I did wrong in the right place.

Is there an example of this process (I haven't found one yet)?

From: pjsip [pjsip-bounces@lists.pjsip.org] on behalf of Bill
Gardner [billg@wavearts.com]
Sent: Friday, October 24, 2014 3:47 PM
To: pjsip@lists.pjsip.org
Subject: Re: [pjsip] How to play a "splash-tone" file as soon as
posssible in the call sequence

Creating a player and connecting to the conference should work,
perhaps you can share some code?

On 10/24/2014 10:50 AM, Brunner, Brian T. wrote:

My attempts (which have been many and unsuccessful) lead me to beg:
How can my SoftVoIPPhone pick up the call and play a "splash tone"
or "please leave your message after the tone" file from the hard
drive to the caller?

I create a player, and I connect it to the conference, but clearly
not the right way or right time.



Confidentiality Requirement: This communication, including any
attachment(s), may contain confidential information and is for the
sole use of the intended recipient(s). If you are not the intended
recipient, you are hereby notified that you have received this
communication in error and any unauthorized review, use, disclosure,
dissemination, distribution or copying of it or its contents is
strictly prohibited.  If you have received this communication in
error, please notify the sender immediately by telephone or e-mail
and destroy all copies of this communication and any attachments.


Visit our blog:http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org


Visit our blog:http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

Right, well I asked for the code and I got it, so I'd better respond. I can see you're answering the call and connecting the player, so those parts look correct, but it's hard to know if you are missing something important in initialization. Do you have a logfile for the auto-answer call? It should show whether the call is properly connected and may have clues as to why the player isn't playing. For example, there may be a problem with audio device that is preventing media flow. Bill On 10/30/2014 4:49 PM, Brunner, Brian T. wrote: > Whilst studying the pjproject-2.2.1/pjsip-apps/src/pjsua files for how > to cause a "PleaseLeaveYourMessage auto-play to happen, a few things: > 1: my app (running on ARM7) receives my test call from a company > digital phone via a gateway; this should make no difference. > You asked for example code; after applying what I could grasp from > the auto-play example, here's what I think should work but doesn't > (with lots trimmed out) > if ((status = pjsua_create()) != PJ_SUCCESS) SleepForever("Can't > create PJSUA, is it already running?",status); > if ((status = pjsua_verify_url(LV.MyURI)) != PJ_SUCCESS) > SleepForever("Fix your bad URI, Doofus!",status); > if ((status = pjsua_init(&ep_cfg, &ep_logging_cfg, NULL)) != > PJ_SUCCESS) SleepForever("Error in pjsua_init()", status); > if ((status = pjsip_endpt_register_module(pjsua_get_pjsip_endpt(), > &mod_default_handler)) != PJ_SUCCESS) SleepForever("Can't register > Endpoint", status); > if ((status = pjsua_player_create(&LV.PleaseLeaveYourMessage, > PJMEDIA_FILE_NO_LOOP, &LV.Player_id)) != PJ_SUCCESS) > SleepForever("Can't create SplashPlayer",status); > LV.PlayerConferencePortNo = pjsua_player_get_conf_port(LV.Player_id); > pjsua_player_get_port(LV.Player_id, &LV.SplashPort); > if ((status = pjmedia_wav_player_set_eof_cb(LV.SplashPort, NULL, > &on_playfile_done)) != PJ_SUCCESS) SleepForever("Can't set eof > cb",status); > if ((status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &tcfg, > NULL)) != PJ_SUCCESS) SleepForever("Can't create transport, bad config > data?",status); > if ((status = pjsua_acc_add(&acct_cfg, PJ_TRUE, &LV.MyAcctId)) != > PJ_SUCCESS) SleepForever("Can't create account (you are a > no-account!)",status); > if ((status = pjsua_start()) != PJ_SUCCESS) SleepForever("Can't start > pjsua. Need more chocolate?",status); > > The callbacks that appear to matter (with lots trimmed out, you don't > want to read a book): > void cb_on_incoming_call(pjsua_acc_id acc_id, pjsua_call_id call_id, > pjsip_rx_data *rdata) > { > pjsua_call_answer(call_id, 200, NULL, NULL); > } > static void cb_on_call_media_state(pjsua_call_id call_id) > { > pjsua_call_info CallInfo; pjsua_call_get_info(call_id, &CallInfo); > unsigned MediaIndex; for (MediaIndex = 0; MediaIndex < > CallInfo.media_cnt;MediaIndex++) > { > switch (CallInfo.media[MediaIndex].type) > { > case PJMEDIA_TYPE_AUDIO: > pjsua_conf_connect(LV.PlayerConferencePortNo, > CallInfo.media[MediaIndex].stream.aud.conf_slot); > } > } > } > > Then I pick up my phone, dial the gateway, and (when it gives dial > tone) dial this softphone. No "PleaseLeaveYourMessage" plays, but I > can here the softphone hang up on me when the timeout expires. > > 2: running /usr/bin/pjsip-test-arm-poky-linux-gnueabi -l 6 logs an > error and quits. > line 918060 of 918085. > I can't tell where one test ends and another begins (hint/beg > of benny: please number the tests and print out the number so I can > say "test 4373 failed; it said "foobar" when it should have said > "mumble", and we'd be on the same page together. > Instead: > 20:02:58.879 Sending Response msg 200/INVITE/cseq=47769 (tdta0xb8c510) > in state Proceeding > 20:02:58.879 .Destroying txdata Response msg 100/INVITE/cseq=47769 > (tdta0xb93548) > 20:02:58.879 .TX 321 bytes Response msg 200/INVITE/cseq=47769 > (tdta0xb8c510) to LOOP-DGRAM:0.0.0.0:0: > SIP/2.0 200 OK^M > Via: SIP/2.0/LOOP-DGRAM > 129.0.0.1:15060;rport=15060;received=129.0.0.1;branch=z9hG4bK-UAS-Test11^M > > Call-ID: 82e44fbf-330c-4350-8d46-773a2226cba8^M > From: <sip:alice@127.0.0.1>;tag=d71eff2a-a70f-4e7c-9151-a3a8a2f5e2f4^M > To: <sip:bob@127.0.0.1>;tag=z9hG4bK-UAS-Test11^M > CSeq: 47769 INVITE^M > Content-Length: 0^M > ^M > > --end msg-- > 20:02:58.879 .State changed from Proceeding to Completed, event=TX_MSG > 20:02:58.930 Transport failed to send Response msg > 200/INVITE/cseq=47769 (tdta0xb8c510)! Err=120104 (Connection reset by > peer) > 20:02:58.932 State changed from Completed to Terminated, > event=TRANSPORT_ERROR > 20:02:58.932 error: incorrect status code > 20:02:58.932 Timeout timer event > 20:02:58.932 .State changed from Terminated to Destroyed, event=TIMER > 20:02:58.932 ..Destroying txdata Response msg 200/INVITE/cseq=47769 > (tdta0xb8c510) > 20:02:58.932 Transaction destroyed! > 20:02:58.933 ..ERROR(-170) > ------------------------------------------------------------------------ > *From:* pjsip [pjsip-bounces@lists.pjsip.org] on behalf of Bill > Gardner [billg@wavearts.com] > *Sent:* Monday, October 27, 2014 2:16 PM > *To:* pjsip@lists.pjsip.org > *Subject:* Re: [pjsip] How to play a "splash-tone" file as soon as > posssible in the call sequence > > See pjsua_app.c for example on how to create player and connect to > conference when call answers. It's all part of the --auto-play option > in pjsua. > > On 10/27/2014 10:35 AM, Brunner, Brian T. wrote: >> I'm puzzled why you need to see broken code in order to tell me >> correct code? >> >> Given a call_id, how do I tell which conference port to connect to, >> in order to send a wav file to the caller? So far I've managed to >> connect it to my sound hardware, which isn't much progress. >> >> I'm curious which call-back is the earliest point in the call >> sequence wherein I'm able to tell which conference port to connect my >> player to (which I mentioned I'd created). >> >> When we're agreed that my broken code is in the correct place (and >> therefore it is the code that is broken, not its location) lets look >> at broken code to see what I did wrong in the right place. >> >> Is there an example of this process (I haven't found one yet)? >> ------------------------------------------------------------------------ >> *From:* pjsip [pjsip-bounces@lists.pjsip.org] on behalf of Bill >> Gardner [billg@wavearts.com] >> *Sent:* Friday, October 24, 2014 3:47 PM >> *To:* pjsip@lists.pjsip.org >> *Subject:* Re: [pjsip] How to play a "splash-tone" file as soon as >> posssible in the call sequence >> >> Creating a player and connecting to the conference should work, >> perhaps you can share some code? >> >> On 10/24/2014 10:50 AM, Brunner, Brian T. wrote: >>> >>> My attempts (which have been many and unsuccessful) lead me to beg: >>> How can my SoftVoIPPhone pick up the call and play a "splash tone" >>> or "please leave your message after the tone" file from the hard >>> drive to the caller? >>> >>> I create a player, and I connect it to the conference, but clearly >>> not the right way or right time. >>> >>> >>> >>> >>> ------------------------------------------------------------------------ >>> >>> ---------------------------------------------------------------------------------------------------------------------------- >>> >>> >>> Confidentiality Requirement: This communication, including any >>> attachment(s), may contain confidential information and is for the >>> sole use of the intended recipient(s). If you are not the intended >>> recipient, you are hereby notified that you have received this >>> communication in error and any unauthorized review, use, disclosure, >>> dissemination, distribution or copying of it or its contents is >>> strictly prohibited. If you have received this communication in >>> error, please notify the sender immediately by telephone or e-mail >>> and destroy all copies of this communication and any attachments. >>> >>> >>> >>> _______________________________________________ >>> Visit our blog:http://blog.pjsip.org >>> >>> pjsip mailing list >>> pjsip@lists.pjsip.org >>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >> >> >> >> _______________________________________________ >> Visit our blog:http://blog.pjsip.org >> >> pjsip mailing list >> pjsip@lists.pjsip.org >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
BG
Bill Gardner
Thu, Oct 30, 2014 9:58 PM

It might be possible to wire a DX plugin into the DirectSound output,
but I think this is only an option if using PortAudio, pjsip natively
doesn't implement DirectSound output. I think you'd be better off
incorporating VST host code into the media processing chain, if you
really want to support arbitrary VST plug-ins. But if you have source,
it's even easier to bypass the VST layer and just code directly into the
pjmedia processing chain. I've done quite a bit of this in the past. One
thing I've done is code effects so you can wire them up using the
conference mixer. That is, an effect processes an input to the mixer and
produces its output on another conference port. Then you can get the dry
signal or processed signal by connecting to the appropriate port.

Bill

On 10/30/2014 5:01 PM, Per Cramer wrote:

Hi,

has anybody ever tested or did something with pjsip and a vst audio
plugin in the output chain of pjsip? I could do something with virtual
audio cable, but shouldn't it be possible to use vast plugins directly
in pjsip. Yes i know that it would require coding, and that is no
problem for me. Just don't know where to start on windows. It uses
directx for audio output? But i can't seem to find where the directx
processing is done.

Regards


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

It might be possible to wire a DX plugin into the DirectSound output, but I think this is only an option if using PortAudio, pjsip natively doesn't implement DirectSound output. I think you'd be better off incorporating VST host code into the media processing chain, if you really want to support arbitrary VST plug-ins. But if you have source, it's even easier to bypass the VST layer and just code directly into the pjmedia processing chain. I've done quite a bit of this in the past. One thing I've done is code effects so you can wire them up using the conference mixer. That is, an effect processes an input to the mixer and produces its output on another conference port. Then you can get the dry signal or processed signal by connecting to the appropriate port. Bill On 10/30/2014 5:01 PM, Per Cramer wrote: > > Hi, > > > has anybody ever tested or did something with pjsip and a vst audio > plugin in the output chain of pjsip? I could do something with virtual > audio cable, but shouldn't it be possible to use vast plugins directly > in pjsip. Yes i know that it would require coding, and that is no > problem for me. Just don't know where to start on windows. It uses > directx for audio output? But i can't seem to find where the directx > processing is done. > > > Regards > > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
PC
Per Cramer
Thu, Oct 30, 2014 10:16 PM

Hi Bill (and others),

does pjsip use port audio also on windows? I thought it was direct sound. What i want to do is add some extra sound processing on the output that goes to the actual sound card. I don't have the source of the actual plugin. To improve the sound a bit more for broadcasting purposes. And it works with virtual audio cable, but that is a solution that is not so nice in my opinion. So coding a vst host into the media processing chain might be the best option. ?An hints on where to start looking Bill?  And anybody any experience with Asio drivers instead of direct sound/x on windows for pjsip?

Regards,

Per


Van: pjsip pjsip-bounces@lists.pjsip.org namens Bill Gardner billg@wavearts.com
Verzonden: donderdag 30 oktober 2014 22:58
Aan: pjsip@lists.pjsip.org
Onderwerp: Re: [pjsip] Add vst plugin to the audio output

It might be possible to wire a DX plugin into the DirectSound output, but I think this is only an option if using PortAudio, pjsip natively doesn't implement DirectSound output. I think you'd be better off incorporating VST host code into the media processing chain, if you really want to support arbitrary VST plug-ins. But if you have source, it's even easier to bypass the VST layer and just code directly into the pjmedia processing chain. I've done quite a bit of this in the past. One thing I've done is code effects so you can wire them up using the conference mixer. That is, an effect processes an input to the mixer and produces its output on another conference port. Then you can get the dry signal or processed signal by connecting to the appropriate port.

Bill

On 10/30/2014 5:01 PM, Per Cramer wrote:

Hi,

has anybody ever tested or did something with pjsip and a vst audio plugin in the output chain of pjsip? I could do something with virtual audio cable, but shouldn't it be possible to use vast plugins directly in pjsip. Yes i know that it would require coding, and that is no problem for me. Just don't know where to start on windows. It uses directx for audio output? But i can't seem to find where the directx processing is done.

?Regards


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.orgmailto:pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

Hi Bill (and others), does pjsip use port audio also on windows? I thought it was direct sound. What i want to do is add some extra sound processing on the output that goes to the actual sound card. I don't have the source of the actual plugin. To improve the sound a bit more for broadcasting purposes. And it works with virtual audio cable, but that is a solution that is not so nice in my opinion. So coding a vst host into the media processing chain might be the best option. ?An hints on where to start looking Bill? And anybody any experience with Asio drivers instead of direct sound/x on windows for pjsip? Regards, Per ________________________________ Van: pjsip <pjsip-bounces@lists.pjsip.org> namens Bill Gardner <billg@wavearts.com> Verzonden: donderdag 30 oktober 2014 22:58 Aan: pjsip@lists.pjsip.org Onderwerp: Re: [pjsip] Add vst plugin to the audio output It might be possible to wire a DX plugin into the DirectSound output, but I think this is only an option if using PortAudio, pjsip natively doesn't implement DirectSound output. I think you'd be better off incorporating VST host code into the media processing chain, if you really want to support arbitrary VST plug-ins. But if you have source, it's even easier to bypass the VST layer and just code directly into the pjmedia processing chain. I've done quite a bit of this in the past. One thing I've done is code effects so you can wire them up using the conference mixer. That is, an effect processes an input to the mixer and produces its output on another conference port. Then you can get the dry signal or processed signal by connecting to the appropriate port. Bill On 10/30/2014 5:01 PM, Per Cramer wrote: Hi, has anybody ever tested or did something with pjsip and a vst audio plugin in the output chain of pjsip? I could do something with virtual audio cable, but shouldn't it be possible to use vast plugins directly in pjsip. Yes i know that it would require coding, and that is no problem for me. Just don't know where to start on windows. It uses directx for audio output? But i can't seem to find where the directx processing is done. ?Regards _______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip@lists.pjsip.org<mailto:pjsip@lists.pjsip.org> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
BG
Bill Gardner
Thu, Oct 30, 2014 10:47 PM

Hi Per,

Pjsip just supports WinMME and PortAudio on Windows, but PortAudio
supports DirectSound. I don't know of any ASIO drivers for pjsip, you
could certainly write one.

There's various places you could wire in. As I mentioned earlier you
could do it in the conference mixer. You could directly modify the mme
driver and stick it in there, or you could use pjmedia_port interface to
wire it up in between conference mixer and sound device. I would study
the chain from the conference mixer outbound to the device.

Bill

On 10/30/2014 6:16 PM, Per Cramer wrote:

Hi Bill (and others),

does pjsip use port audio also on windows? I thought it was direct
sound. What i want to do is add some extra sound processing on the
output that goes to the actual sound card. I don't have the source of
the actual plugin. To improve the sound a bit more for broadcasting
purposes. And it works with virtual audio cable, but that is a
solution that is not so nice in my opinion. So coding a vst host into
the media processing chain might be the best option. An hints on where
to start looking Bill?  And anybody any experience with Asio drivers
instead of direct sound/x on windows for pjsip?

Regards,

Per


Van: pjsip pjsip-bounces@lists.pjsip.org namens Bill Gardner
billg@wavearts.com
Verzonden: donderdag 30 oktober 2014 22:58
Aan: pjsip@lists.pjsip.org
Onderwerp: Re: [pjsip] Add vst plugin to the audio output
It might be possible to wire a DX plugin into the DirectSound output,
but I think this is only an option if using PortAudio, pjsip natively
doesn't implement DirectSound output. I think you'd be better off
incorporating VST host code into the media processing chain, if you
really want to support arbitrary VST plug-ins. But if you have source,
it's even easier to bypass the VST layer and just code directly into
the pjmedia processing chain. I've done quite a bit of this in the
past. One thing I've done is code effects so you can wire them up
using the conference mixer. That is, an effect processes an input to
the mixer and produces its output on another conference port. Then you
can get the dry signal or processed signal by connecting to the
appropriate port.

Bill

On 10/30/2014 5:01 PM, Per Cramer wrote:

Hi,

has anybody ever tested or did something with pjsip and a vst audio
plugin in the output chain of pjsip? I could do something with
virtual audio cable, but shouldn't it be possible to use vast plugins
directly in pjsip. Yes i know that it would require coding, and that
is no problem for me. Just don't know where to start on windows. It
uses directx for audio output? But i can't seem to find where the
directx processing is done.

Regards


Visit our blog:http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

Hi Per, Pjsip just supports WinMME and PortAudio on Windows, but PortAudio supports DirectSound. I don't know of any ASIO drivers for pjsip, you could certainly write one. There's various places you could wire in. As I mentioned earlier you could do it in the conference mixer. You could directly modify the mme driver and stick it in there, or you could use pjmedia_port interface to wire it up in between conference mixer and sound device. I would study the chain from the conference mixer outbound to the device. Bill On 10/30/2014 6:16 PM, Per Cramer wrote: > > Hi Bill (and others), > > > does pjsip use port audio also on windows? I thought it was direct > sound. What i want to do is add some extra sound processing on the > output that goes to the actual sound card. I don't have the source of > the actual plugin. To improve the sound a bit more for broadcasting > purposes. And it works with virtual audio cable, but that is a > solution that is not so nice in my opinion. So coding a vst host into > the media processing chain might be the best option. An hints on where > to start looking Bill? And anybody any experience with Asio drivers > instead of direct sound/x on windows for pjsip? > > > Regards, > > > Per > > > ------------------------------------------------------------------------ > *Van:* pjsip <pjsip-bounces@lists.pjsip.org> namens Bill Gardner > <billg@wavearts.com> > *Verzonden:* donderdag 30 oktober 2014 22:58 > *Aan:* pjsip@lists.pjsip.org > *Onderwerp:* Re: [pjsip] Add vst plugin to the audio output > It might be possible to wire a DX plugin into the DirectSound output, > but I think this is only an option if using PortAudio, pjsip natively > doesn't implement DirectSound output. I think you'd be better off > incorporating VST host code into the media processing chain, if you > really want to support arbitrary VST plug-ins. But if you have source, > it's even easier to bypass the VST layer and just code directly into > the pjmedia processing chain. I've done quite a bit of this in the > past. One thing I've done is code effects so you can wire them up > using the conference mixer. That is, an effect processes an input to > the mixer and produces its output on another conference port. Then you > can get the dry signal or processed signal by connecting to the > appropriate port. > > Bill > > On 10/30/2014 5:01 PM, Per Cramer wrote: >> >> Hi, >> >> >> has anybody ever tested or did something with pjsip and a vst audio >> plugin in the output chain of pjsip? I could do something with >> virtual audio cable, but shouldn't it be possible to use vast plugins >> directly in pjsip. Yes i know that it would require coding, and that >> is no problem for me. Just don't know where to start on windows. It >> uses directx for audio output? But i can't seem to find where the >> directx processing is done. >> >> >> Regards >> >> >> >> _______________________________________________ >> Visit our blog:http://blog.pjsip.org >> >> pjsip mailing list >> pjsip@lists.pjsip.org >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org