Giter VIP home page Giter VIP logo

tsip's People

Contributors

fencepost avatar homedimon avatar lulol avatar tomek-o avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

tsip's Issues

Multiple accounts...

Hi,

Would it be possible to allow the use of 2 or more sip accounts?
For example: allow one outgoing sip account and one incoming sip account.

Thanks!

French translation

Hi,

here is the translation file for french lang:

{
"TfrmContactEditor" : {
"btnApply" : "Appliquer",
"btnCancel" : "Annuler",
"caption" : "Ajout/éditer contact",
"lblCompany" : "Société",
"lblContactFile" : "Fichier",
"lblDescription" : "Description",
"lblNote" : "Note",
"lblNumber1" : "Numéro #1",
"lblNumber2" : "Numéro #2",
"lblNumber3" : "Numéro #3"
},
"TfrmContacts" : {
"miAdd" : "Ajouter",
"miDelete" : "Supprimer",
"miEdit" : "Editer",
"multiItemCallText" : "Appeler...",
"multiItemMessageText" : "Message...",
"noNumberUriText" : "Aucun num/URI",
"singleItemCallText" : "Appel:",
"singleItemMessageText" : "Message:"
},
"TfrmHistory" : {
"callTimeText" : "Durée d'appel:",
"codecText" : "Codec:",
"incomingCallText" : "Appel entrant",
"miAddEditPhonebook" : "Ajout/éditer un contact",
"miCopyNumber" : "Copier le numéro",
"miHttpQuery" : "Requête HTTP",
"miMessage" : "Message",
"nameNumber" : "Nom/numéro",
"notCompletedText" : "(incomplet)",
"outgoingCallText" : "Appel sortant",
"replyCode" : "Répondre au code:",
"replyLine" : "Répondre à la ligne:",
"timestamp" : "Horodatage",
"unansweredText" : "(Sans réponse)"
},
"TfrmMain": {
"btnHangup": "Raccrocher",
"btnMakeCall": "Appeler/Répondre",
"miAbout": "A Propos...",
"miClearCallsHistory": "Effacer historique",
"miCommonSettings": "Paramètres",
"miExit": "Quitter",
"miFile": "Fichier",
"miHelp": "Aide",
"miImportContactsFromCsv": "Importer contacts CSV",
"miImportContactsFromXml": "Importer contacts XML",
"miMessages": "Messages",
"miMinimizeTray": "Minimise dans la barre de tache",
"miPatchButtonSettings": "Patch / update paramètres boutons JSON",
"miRefreshTranslationFromFile": "Recharger le fichier de traduction",
"miScripting": "Fenêtre de script",
"miSettings": "Configuration",
"miSettingsPatch": "Patch / update paramètres généraux JSON",
"miTools": "Outils",
"miTroubleshooting": "Dépannage",
"miView": "Vue",
"miViewLog": "Log",
"tsContacts": "Contacts",
"tsDialpad": "Pave numérique",
"tsHistory": "Historique"
},
"TfrmTrayNotifier": {
"btnAnswer": "Répondre",
"btnHangup": "Raccrocher"
}
}

But there is so many lines not present in this json file

Is it possible to automatically adjust buffer time and skew value when using webrtc aec?

I am adjusting the values of the webrtc aec in settings, but the values of buffer time and skew that can completely eliminate local echo seem to be different for different destination for some reason.
For example, when I call a mobile phone from tSIP, I can completely eliminate the echo with buffer time 220, but not the echo of a landline.
Conversely, when I call a landline from tSIP, I can completely eliminate the echo with buffer time 260, but not the echo of the mobile phone.

I would like to know the meanings and the way to adjust these values(buffer time , skew), and would it be difficult to implement a function that compares the audio input and output and automatically adjusts these values?

tSIP on MacOS?

Hi, thank you for your awesome program, especially for possibility to record different callers with stereo recording feature.
My question: is it possible to compile tSIP for MacOS? If yes, can you give some help info on how to do it?

Fantastic Software: Request for Minor Feature

Your tSIP.exe program is truly awesome!

And I'm using it as the softphone for my own website: myvoipmsalt.com, which is itself my own GUI based on the API of the voip.ms service.

tSIP.exe is so awesome, i'd like to use it as the default with the broswer sip: protocol, so i could use the standard "sip:" protocol name in my web codes.

however, when i attempt to use "sip" in the tsip.exe program's browser integration configuration option, the browsers all insist on using "sip:nnnnnnnn" as the value for "%1", with the browser-generated command looking like:

[path]/tSIP.exe /tsip="sip:nnnnnnnn"

However, tSIP.exe accepts only /tsip="tsip:nnnnnnnn"

It would be really nice if tSIP.exe accepted /tsip="sip:nnnnnnnn" as well as /tsip="tsip:nnnnnnnn"

Script = cannot run

I found that when using “SCRIPT=” parameter, it will be unable to run because of special characters. I changed the script to Base64. I don't know if it is correct.

tSIP/FormMain.cpp

RunScript(SCRIPT_SRC_COMMAND_LINE, 0, cmd.script, breakReq, handled);

std::string scriptCotent = base64_decode(cmd.script.c_str(), BASE64_ALPHABET_FSAFE);
RunScript(SCRIPT_SRC_COMMAND_LINE, 0, scriptCotent.c_str(), breakReq, handled);

G.729 compiling instructions need to be updated

The instructions here no longer seem to work. I could not find any folder with the name g729a_v11.

I did find the module here and a different version here, so I tried to rename the folder from mod_g729 to g729a_v11 and use that instead, but the build fails with failing to find typedef.h

I'm not sure if this is going to help me though, can someone tell me what exactly determines witch codec is used? When I use my cellphone I see in the logs that it picks PCMA 8000Hz 1ch, but when I use a FritzFon it will pick G722 16000Hz 1ch which sounds allot better. Is it the device I am calling with or is it the telephone provider that determines the mutual codec? I tried forcing the better codec by removing 8000 codecs, but I got my voicemail and the logs showed there was no mutual codec available (when using my mobile phone). I was hoping that G.729 would sound better than PCMA (hopefully it is supported by my device or provider).

Conference calls and call waitting please.

Hi,

It would be great to be able to make conference calls.
Call waitting is another option that I am looking for, so I can take an incoming call if I'm already talking to someone.

Keep up the good work.

ctrl_tcp modules

Hello Tomasz,
would it be possible to integrate the ctrl_tcp module from Baresip.
I have programmed a full screen browser for home automation in Delphi and would like to use your program to communicate with a door intercom. The command line commands work well, but I also need the sip actions such as call, hang up, etc.
With a TCP socket module, your program would be controllable from any programming language.

Lua command SwitchAudioSource() and SwitchAudioPlayer() problem

I believe SwitchAudioSource() and SwitchAudioPlayer() are commands that change the audio input/output device during a call.

However, when I run this command, the default Windows device becomes the audio input/output device of the call.

The specific command I tried is as follows
SwitchAudioSource(“winwave2”, “microphone (USB Audio)”) and SwitchAudioSource(“winwave2”, "USB Audio”)
SwitchAudioPlayer(“winwave2”, “speaker (USB Audio)”) and SwitchAudioPlayer(“winwave2”, “USB Audio”)

I'm trying to switch input/output devices from "USB microphone" to "USB Audio" during a long call.
The device name is obtained with GetAudioDevice().

tSIP on linux

Hi.

Not long time ago I have moved part of my home computers into mageia and fedora distros. And most of my daily used software is already there as a cross platform one.

But I would like to know if it is possible to get tsip working under Linux.
Have you tried to compile and run it?

Support for encryption?

It does not look like there is currently support for SIP over TLS or SRTP.

Am I correct about that or did I miss something?

Assuming I'm correct, is that a feature you'd be willing to put on the roadmap? It's not a critical feature to me at the moment but it would certainly be nice to have.

Great work otherwise though, this is so far the only open source softphone I've used where the BLF actually works the way it should.

Peticiones HTTP/HTTPS

It would be great if a function could be added to be able to send an https request and be able to obtain the body, currently I am doing it with cmd and curl then creating a file, reading it from a lua script to be able to obtain the response, you see a console which makes it super annoying and so on.

In short, my proposal would be to have a function in which requests can be made faster and easier.

I think this will be very helpful to many...

Features required to make tSIP suitable for support/sales teams

Following the discussion on SE I'd like to describe in detail some workflows and the features required to make tSIP perfect for small to even mid-sized teams that take (or even make) lots of phone calls.

For this example there will be two users, A and B working for company BigBlue which sells bottled water.

Each user is on a PC running tSIP and accepting incoming sale/support/whatever calls from random numbers (that may or may no have called before).

tSIP rings, user A picks up. Random customer wants to buy 10 bottles. A tells them they cost $100 total and will take 2 days to deliver. A can also offer a 10% discount if they buy in the next 24 hours. Customer says they'll think about it and hangs up. A needs to write this down otherwise they won't be able to remember that discount they offered the customer.

tSIP rings, user B picks up. The customer, John Doe, bought lots of water last week and some of the bottles were leaky. B offers free replacement. Customer hangs up. B needs to write this down.

tSIP rings and rings and rings...

The goal is to track each (incoming) call, ie write down what was said on that call, which services may have been offered, at what prices, etc.

I know CRM with phone integration (TAPI, etc) is the correct answer but lets ignore CRM for now, this is tSIP repository.


First of all, the line between contacts and history will get blurry, you may or may not want this but having it is the best approach for scenarios like the one above.

I believe the best approach is as follows:

  1. (Using a proper database is a better option but keeping it file-based is much simpler)
  2. Create a folder "Contacts" in program directory or select one on a (network) drive
  3. Every time there's a call (in/out) create a json file in said folder (for example, 0049123456789.json), if one doesn't already exist
  4. In said file store info similar to this:
     { "Contact" : [
      {
         "name" : "",
         "company" : "",
         "file" : "",
         "uri" : "0049123456789",
         "parenturi" : " not really needed but someone can have multiple numbers,
                                 here you can link to the parent contact"
      }],
	  
   "CallHistory" : [
      {
         "incoming" : true,
         "originUri" : "0049123456789",
         "destUri" : "nick",
         "timestamp" : "yyyy-MM-ddTHH-mm-ssZ",
		 "notes" : {
			 "createdBy": "name of user/uri who added the note",
			 "note" : "This is a note"
		 } },
	   {
         "incoming" : false,
         "originUri" : "nick",
         "destUri" : "0049123456789",
         "timestamp" : "yyyy-MM-ddTHH-mm-ssZ",
		 "notes" : {
			 "createdBy": "name of user/uri who added the note",
			 "note" : "This is another note"
		 } }
	  ]}	  

	"MainNotes" : 
      {
         "notes" : "This is a note sitting on top of the notes per call from history",
         "timestampSinceLastEdit" : "yyyy-MM-ddTHH-mm-ssZ"
      },
	  
	"AlternativeBefierMainNotesWithVersionHistory" :
      {
         "{yyyy-MM-ddTHH:mm:ssZ}" : {
			 "createdby": "name of user who changed the note",
			 "note" : "This is the original note"
		 },
	 "{yyyy-MM-ddTHH:mm:ssZ}" : {
		 "createdby": "name of user who changed the note",
		 "note" : "This is the edited note that's now visible.
                               Older notes visible using 'move through time' functionality"
	 }
      }
  1. Make the notes window look like this:
    https://i.ibb.co/GCHZf2P/tsip-notes-ui-example.jpg
  2. You now have notes per individual call (in/out).
  3. You also get to have "main notes" (similar to the ones currently in tSIP) sitting above the call history for general stuff not tied to any particular call.
  4. During/after every call you get the chance to add notes to the entry for that call in the call history (notes window pops up automatically or manually).
  5. Add checks to make sure you are not losing notes. Use exclusive lock on json during edits. If a different user tries to edit the same file (unlikely, calls from the same number almost never happen one after the other) store data in temp file until json can be edited.
    Alternatively, copy json to memory, make edits, check it hasn't changed, replace (if it has changed, merge/ask user to resolve conflicts).
  6. Add some versioning/backup capabilities to protect files in case something happens.

I think I'm gonna stop here because it's getting way too long.
Have more ideas but the above will be good enough for most.

Custom sound buttons

It would be cool if there was a feature to add configurable buttons to the UI that play a sound file to the caller you are connected to.

Not able to hear the input wave file when receiving calls

Hello,

I set a wave file as Input, it works when calling to other phones with tSIP.
However, if I answer the call with tSIP, I can hear nothing.

Log gives no error message, not sure what's wrong.

Below is the log with success wave file sound (calling to another phone):

===================
Application started
Main config file: C:\Users\user\Downloads\tSIP_0_2_09_bin\tSIP_0_2_09_bin\tSIP.json
--- Network debug ---
 Preferred AF:  AF_UNSPEC
 Local IPv4:           - ?
 Net interfaces:
Enumerating phone device dlls...
Directory: C:\Users\user\Downloads\tSIP_0_2_09_bin\tSIP_0_2_09_bin\phone\
 {D9AF344E-E286-4098-864E-AE2CAA53282B}:  192.168.102.56
 {6CA398C6-81EF-4B52-A700-DEAE8110B367}:  0.0.0.0
 {B49932CB-6008-45D2-A7F8-EB2B7CBE9900}:  0.0.0.0
 {FDFDACC8-780B-4ABF-B73C-F4C999301F2F}:  0.0.0.0
 {2FC9FA46-FD59-49F6-8AD7-758FBA04D95C}:  0.0.0.0
 {CB5FFB40-7BAD-481D-8DD0-F3C636CBD24B}:  0.0.0.0
 {1212295C-14A5-4FAC-80D9-8E2D1A94F7A0}:  0.0.0.0
 DNS Servers: (1)
   0: 192.168.102.1:53
aucodec: PCMU/8000/1
aucodec: PCMA/8000/1
aucodec: G722/8000/1
aucodec: G726-32/8000/1
aucodec: GSM/8000/1
aucodec: speex/32000/2
aucodec: speex/16000/2
aucodec: speex/8000/2
aucodec: speex/32000/1
aucodec: speex/16000/1
aucodec: speex/8000/1
aucodec: L16/48000/2
aucodec: L16/44100/2
aucodec: L16/32000/2
aucodec: L16/16000/2
aucodec: L16/8000/2
aucodec: L16/48000/1
aucodec: L16/44100/1
aucodec: L16/32000/1
aucodec: L16/16000/1
aucodec: L16/8000/1
aucodec: opus/48000/2
Portaudio driver: Device count 5
 device 0: 主要音效擷取驅動程式 (channels in: 2, out: 0)
 device 1: 插孔麥克風 (Realtek(R) Audio) (channels in: 2, out: 0)
 device 2: 主要音效驅動程式 (channels in: 0, out: 2)
 device 3: Speakers/Headphones (Realtek(R) Audio) (channels in: 0, out: 2)
 device 4: DELL U2417H (Intel(R) 顯示器音效) (channels in: 0, out: 2)
ausrc: portaudio
auplay: portaudio
winwave: output devices: 2, input devices: 1
ausrc: winwave
auplay: winwave
winwave2: output devices: 2, input devices: 1
ausrc: winwave2
auplay: winwave2
ausrc: aufile
ausrc: aufile_mm
ausrc: nullaudio
auplay: nullaudio
aufilt: softvol
medianat: stun
mediaenc: zrtp
mediaenc: srtp
mediaenc: srtp-mand
mediaenc: srtp-mandf
Binding to interface '{D9AF344E-E286-4098-864E-AE2CAA53282B}'
Local network address: IPv4={D9AF344E-E286-4098-864E-AE2CAA53282B}:192.168.102.56
TLS: add 56 certificate(s) from Windows store
Loading module dlls...
Populated 22 audio codecs
Populated 1 audio filter
[email protected]: Registration {0/UDP/v4} 200 OK (SONUS SBC1000 9.0.6v601 Ribbon) [1 binding]
connecting to 'sip:[email protected];transport=udp'..
call: SIP Progress: 100 Trying (/)
call: SIP Progress: 183 Session Progress (application/sdp)
[email protected]: Call in-progress: sip:[email protected];transport=udp
Set audio encoder: PCMU 8000Hz 1ch
starting player...
start_player
starting source...
start_source
ausrc_alloc
aufile: loading input file 'C:\Users\user\Downloads\tSIP_0_2_09_bin\tSIP_0_2_09_bin\cpr-tempo-8000-16bit-short.wav'
aufile: C:\Users\user\Downloads\tSIP_0_2_09_bin\tSIP_0_2_09_bin\cpr-tempo-8000-16bit-short.wav: 8000 Hz, 1 channels
aufile: audio ptime=20 sampc=160 aubuf=[16000:320000]
aufile: end of file
aufile: loaded 4604198 bytes
ausrc_alloc status = 0
start_source: end
Set audio decoder: PCMU 8000Hz 1ch
ac: no decupdh
audio_decoder_set: audio_start
starting player...
start_player
auplay_alloc
auplay_alloc status = 0
start_player: end
starting source...
start_source
start_source: end
audio tx pipeline:      aufile ---> softvol ---> PCMU
audio rx pipeline:   nullaudio <--- softvol <--- PCMU
audio_decoder_set: status = 0
starting player...
start_player
start_player: end
starting source...
start_source
start_source: end
Set audio decoder: PCMU 8000Hz 1ch (not changed)
ac: no decupdh
audio_decoder_set: status = 0
call: SIP Progress: 180 Ringing (/)
aufile: player thread exited
Set audio decoder: PCMU 8000Hz 1ch (not changed)
ac: no decupdh
audio_decoder_set: status = 0
starting player...
start_player
auplay_alloc
auplay_alloc status = 0
start_player: end
starting source...
start_source
ausrc_alloc
aufile: loading input file 'C:\Users\user\Downloads\tSIP_0_2_09_bin\tSIP_0_2_09_bin\cpr-tempo-8000-16bit-short.wav'
aufile: C:\Users\user\Downloads\tSIP_0_2_09_bin\tSIP_0_2_09_bin\cpr-tempo-8000-16bit-short.wav: 8000 Hz, 1 channels
aufile: audio ptime=20 sampc=160 aubuf=[16000:320000]
aufile: end of file
aufile: loaded 4604198 bytes
ausrc_alloc status = 0
start_source: end
Set audio decoder: PCMU 8000Hz 1ch (not changed)
ac: no decupdh
audio_decoder_set: status = 0
starting player...
start_player
start_player: end
starting source...
start_source
start_source: end
[email protected]: Call established: sip:[email protected];transport=udp
terminate call with sip:[email protected];transport=udp
aufile: player thread exited
sip:[email protected]:5060: Call with sip:[email protected];transport=udp terminated (duration: 5 secs)
Finalizing...
Stopping 1 useragent.. 
Useragent(s) stopped
Checking for memory leaks...
main exit w/o error, waiting for restart or termination

And below is answered call that's without sound (below example is with auto answer, bot neither anto nor manual answer can hear the set wave file input):

===================
Application started
Main config file: C:\Users\user\Downloads\tSIP_0_2_09_bin\tSIP_0_2_09_bin\tSIP.json
--- Network debug ---
 Preferred AF:  AF_UNSPEC
 Local IPv4:           - ?
 Net interfaces:
Enumerating phone device dlls...
Directory: C:\Users\user\Downloads\tSIP_0_2_09_bin\tSIP_0_2_09_bin\phone\
 {D9AF344E-E286-4098-864E-AE2CAA53282B}:  192.168.102.56
 {6CA398C6-81EF-4B52-A700-DEAE8110B367}:  0.0.0.0
 {B49932CB-6008-45D2-A7F8-EB2B7CBE9900}:  0.0.0.0
 {FDFDACC8-780B-4ABF-B73C-F4C999301F2F}:  0.0.0.0
 {2FC9FA46-FD59-49F6-8AD7-758FBA04D95C}:  0.0.0.0
 {CB5FFB40-7BAD-481D-8DD0-F3C636CBD24B}:  0.0.0.0
 {1212295C-14A5-4FAC-80D9-8E2D1A94F7A0}:  0.0.0.0
 DNS Servers: (1)
   0: 192.168.102.1:53
aucodec: PCMU/8000/1
aucodec: PCMA/8000/1
aucodec: G722/8000/1
aucodec: G726-32/8000/1
aucodec: GSM/8000/1
aucodec: speex/32000/2
aucodec: speex/16000/2
aucodec: speex/8000/2
aucodec: speex/32000/1
aucodec: speex/16000/1
aucodec: speex/8000/1
aucodec: L16/48000/2
aucodec: L16/44100/2
aucodec: L16/32000/2
aucodec: L16/16000/2
aucodec: L16/8000/2
aucodec: L16/48000/1
aucodec: L16/44100/1
aucodec: L16/32000/1
aucodec: L16/16000/1
aucodec: L16/8000/1
aucodec: opus/48000/2
Portaudio driver: Device count 5
 device 0: 主要音效擷取驅動程式 (channels in: 2, out: 0)
 device 1: 插孔麥克風 (Realtek(R) Audio) (channels in: 2, out: 0)
 device 2: 主要音效驅動程式 (channels in: 0, out: 2)
 device 3: Speakers/Headphones (Realtek(R) Audio) (channels in: 0, out: 2)
 device 4: DELL U2417H (Intel(R) 顯示器音效) (channels in: 0, out: 2)
ausrc: portaudio
auplay: portaudio
winwave: output devices: 2, input devices: 1
ausrc: winwave
auplay: winwave
winwave2: output devices: 2, input devices: 1
ausrc: winwave2
auplay: winwave2
ausrc: aufile
ausrc: aufile_mm
ausrc: nullaudio
auplay: nullaudio
aufilt: softvol
medianat: stun
mediaenc: zrtp
mediaenc: srtp
mediaenc: srtp-mand
mediaenc: srtp-mandf
Binding to interface '{D9AF344E-E286-4098-864E-AE2CAA53282B}'
Local network address: IPv4={D9AF344E-E286-4098-864E-AE2CAA53282B}:192.168.102.56
TLS: add 56 certificate(s) from Windows store
Loading module dlls...
Populated 22 audio codecs
Populated 1 audio filter
[email protected]: Registration {0/UDP/v4} 200 OK (SONUS SBC1000 9.0.6v601 Ribbon) [1 binding]
Delayed auto answer, time = 126 ms
Answering...
answering call from sip:[email protected]:5060;user=phone with 200
Set audio decoder: PCMU 8000Hz 1ch
ac: no decupdh
audio_decoder_set: audio_start
starting player...
start_player
auplay_alloc
auplay_alloc status = 0
start_player: end
starting source...
start_source
audio_decoder_set: status = 0
Set audio encoder: PCMU 8000Hz 1ch
starting player...
start_player
start_player: end
starting source...
start_source
ausrc_alloc
aufile: loading input file 'C:\Users\user\Downloads\tSIP_0_2_09_bin\tSIP_0_2_09_bin\cpr-tempo-8000-16bit-short.wav'
aufile: C:\Users\user\Downloads\tSIP_0_2_09_bin\tSIP_0_2_09_bin\cpr-tempo-8000-16bit-short.wav: 8000 Hz, 1 channels
aufile: audio ptime=20 sampc=160 aubuf=[16000:320000]
aufile: end of file
aufile: loaded 4604198 bytes
ausrc_alloc status = 0
start_source: end
audio tx pipeline:      aufile ---> softvol ---> PCMU
audio rx pipeline:   nullaudio <--- softvol <--- PCMU
Answered
Set audio decoder: PCMU 8000Hz 1ch (not changed)
ac: no decupdh
audio_decoder_set: status = 0
starting player...
start_player
start_player: end
starting source...
start_source
start_source: end
[email protected]: Call established: sip:[email protected]:5060;user=phone
sip:[email protected]:5060;user=phone: session closed: End of call (BYE received)
aufile: player thread exited
sip:[email protected]:5060: Call with sip:[email protected]:5060;user=phone terminated (duration: 7 secs)
Finalizing...
Stopping 1 useragent.. 
Useragent(s) stopped
Checking for memory leaks...
main exit w/o error, waiting for restart or termination


Positioning

I found an odd issue.
I was working on a laptop on multiple screens, so moved programs onto the other screens, including the phone software.
Next day I am in a new location and no access to the multiple screens, but I open everything, and all porgrams reset themselves onto the one screen, except for tsip, I cannot get it back onto the main screen! it is stuck on the second screen which I don't have access to!

I think it needs to have a reset position somewhere, either automatic when it detects one screen only or maybe in the right click menu on the icon, that will just move it to the center of the main display.

I am guessing but not looked yet that I can sort it out somewhere in one of the json or ini files, so will go look into that now.

User-Specific Settings

It would be awesome if there could be the possibility to have User-Specific Settings or at least Account Settings.
Currently i have PCs and/or RDSH Server where i would like to use tSip for multiple Users with their own settings.

For now, i have to copy the whole Application multiple times on the same machine to achieve this.
It would be great if there is chance to save Settings to the user Application Path or similar to have one installed App with one configuration per User.

SMS support?

Not really an issue but a question about plans:

I was thinking about some message sending to/from tsip clients mostly for notification purposes.

As far as i can see there is some options about sms in a voip world:

ETSI 201 912 land line sms - works for asterisk app smsq and gigaset (basically no idea if any other ip phones\gateways support it)

SIP MESSAGE (RFC 3428), also known as SIMPLE

So do you have any idea to implements some sms support?

Video Support

It will be great if you add video support on the VOIP, maybe using VP9 so we could do videocalls.

Also, it is very important if you could add ZRTP support on it.

Single instance parameter not working.

At first - thank you for this greate software!

We have problem with software. In settings "Single instance" checked. In tSIP.json parameter "SingleInstance" : true, but when application minimized or in tray, run exe create new procces and open yet one instance of allication.
Try to call tSip.exe with parameter /SHOWWINDOW, /tsip="SHOWWINDOW" - nothing.
Is this bug or maybe we doing something wrong?

Cannot dial numbers or connect to other accounts

Using version 0.01.70.00, I can't seem to dial any number, external or internal. It always times out. (Note: I have not tested any previous versions)
I've set up the account data correctly, as it registers and I can see other accounts BLF info in the speed dial.
The log says

connecting to 'sip:dialednumber@provider;transport=tcp'..
sip:dialednumber@provider: session closed: Connection timed out

I've tried multiple other softphones which work fine, so I assume it's not the providers fault.

I've asked my provider if my server settings are correct and they said I am not supposed to call an account like this but only numbers like 35 (an internal phone extension) or 07654321 (0 is our "dial out" prefix for external numbers). But the @provider always gets attached to the number, but 35@provider is not a valid account.

I am trying to replace some hardware phones with this and they only dial numbers, not accounts.
There are also some special numbers like *9 to transfer any ringing account to me, but it then also gets dialed as *9@provider

Is dialing numbers only somehow possible without having the @provider attached?

Change User-Agent

Some ISPs do not allow registration to be set if it does not match the User-Agent of their authorized devices, in order to avoid external settings.

Is it possible to change this User-Agent in tSIP?

Thank you.

Come to foreground, if BLF changes

tSIP comes to foreground, if an incoming call arrives.
But IMO it should also come to foreground, in the BLF changes (especially if one of the monitored extensions starts ringing).

Lua command GetRecorderState() return nil

Both in version 0.3 and 0.3.03, Lua command GetRecordingState() works correctly, but GetRecorderState() always seems to return nil, whether it takes a Call uid as an argument or not. Also, I am not sure if this is related, but the "on recorder state" event in "Scripts" in Settings also does not seem to work correctly whether the recorder is started or stopped.

My goal is to get the scripts listed at
https://tomeko.net/software/SIPclient/howto/record_pause_resume.php
working correctly.

Headset button support please

So headset buttons can be used to answer/hangup calls, it works in microsip but not in tsip, would be really nice to have it working in tsip

Buttons not showing text

When you program a button in the bottom 2 rows using BLF and any text in the caption, no text shows at all, if you change it to something else like speeddial it shows fine, it only seems to affect the bottom 2 rows of buttons.

Issue with RDP/RDSH

Hello

I´m having issues getting tSIP to work trough RDP/RDSH.

If i don´t specify any device in Audio I/O i get audio ringing output, but this error when i answer:

Handling commnand line
answering call from sip:[email protected] with 200
Set audio decoder: PCMA 8000Hz 1ch
Set audio encoder: PCMA 8000Hz 1ch
waveInOpen: failed 0
start_source failed: Invalid argument (code 19)
sip:[email protected]: session closed: End of call (CANCEL received)

If i do specify All Audio I/O as Remote Audio with PortAudio there is still ringing and this i the output:

write stream latency = 100 ms
answering call from sip:[email protected] with 200
Set audio decoder: PCMA 8000Hz 1ch
write stream latency = 100 ms
Set audio encoder: PCMA 8000Hz 1ch
read: Pa_OpenStream: Unanticipated host error
start_source failed: Invalid argument (code 19)
sip:[email protected]: session closed: End of call (CANCEL received)

Any ideas where to start troubleshooting this?

Contacts

Not sure if there is a way to do this, but if not I logging it as an issue

Export contacts to one of the formats that can be imported to make it easier when you have many to copy them onto a new computer.

Thanks.

Pass argument to lua-Script

Hi, thanks for your great tool! I'm new to lua - and your solution :-)

I've managed it to launch (by powershell) tsip with a lua script to call a number and play a text-to-speech generated wave-file in a loop. Is it possible to pass an argument to the lua script (with the number to call and maybe other parameters?). I'd like to check for a dtmf-callback to send an email to a passed by argument defined email-address.

Error when JSON patch button settings

I get an error when I try to update the buttons with JSON patch. Any idea what I'm doing wrong here?

[{ "op": "replace", "path": "/btnConf/25", "value": { "caption" : "Pound Sign", "number" : "#", "type" : 3 } }]

image

---------------------------
tSIP
---------------------------
Access violation at address 006FFF14 in module 'tSIP.exe'. Read of address 00000000.
---------------------------
OK   
---------------------------

Running on:
tsip 0.03.03.00 (does not work on 0.03.01.00 as well)
Windows 10 22H2

EDIT:
Also tried something smaller - same error.

[{ "op": "replace", "path": "/btnConf/25/caption", "value": "Pound Sign" }]

Not sending correct DTMF format

First of all, congratulations on your job, it's great.

When i try to use the numeric keyboard to send a DTMF tone, the server not catch it.

It seems that uses a different format than RFC2833 and SIP INFO.

When i capture the log with other software that sends correctly the DTMF tones this is the result:

22:04:46,298: Generate DTMF: 1
22:04:46,298: Facility Request: 19 00 01 00 80 80 F2 0B 01 01 01 00 01 00 0A 03 00 64 00 3C 00 01 31 00 00
22:04:46,298: Facility (DTMF Send) Request (1)
22:04:46,299: Facility Confirm: 11 00 01 00 80 81 F2 0B 01 00 00 00 00 00 01 00 00
22:04:46,299: Facility Confirm (DTMF)

I think that the DTMFs format is generated as inband tone.

Could the following format be implemented in the software? Thank you :)

show different icons for Idle/Invalid BLF?

the BLF buttons show an idle phone icon for both states 'Idle' and 'Invalid'. This is confusing where some extensions are not active and yet show as idle. They definitely show as unavailable in the Asterisk console, can this be reflected in the BLF status in tSIP?

Or.. is it only Presence that would show this?

Handle multiple calls

Is possible to receive more than one call simultaneously? I tried but seems like get busy state

Open project in RAD C++ 10.3 Community Edition

As far as I understand, the project file format has changed in new versions. therefore
<Option Name = "Personality"> CPlusPlusBuilder.Personality </Option>
not supported and any projects fails on opened.
Is there any way to open your projects in the current version?
Perhaps I forgot to install any required software?

Phone number display(parked call)

If a call from tSIP to Asterisk call park number(7XX) is made when some call is already parked in 7XX,
SIP messages seem to be exchanged in the following order

  1. Request:INVITE from tsip
  2. Status:200OK from Asterisk
  3. Request:ACK from tSIP
  4. Request:INVITE in-dialog from Asterisk
    (In the case of Grandstream IP phones, 4. seems to be Request:Update)

This Request:INVITE in-dialog message has the phone number of parked call as P-Asserted-Identity, but even if “Use P-Asserted-Identity if present” is checked in the Display of tSIP's settings, call park number(7XX) appears on the display of tSIP.

I would like to see the phone number on tSIP display. Is this a problem with asterisk or tSIP?

(72001:callpark 2002076:tsip 117:phone number)
passerted

Number buttons cannot be modified

It seems the number buttons cannot be modified. Any way to make them show the letters, e.g. 2 = ABC, 7 = PRS... 0 = OPER? MicroSIP has letters on the buttons. I can't seem to be able to add these using Caption 2 either, there are no modification options. This makes dialing using letters difficult.

Originally posted by @InterLinked1 in #10 (comment)

Help

Could you explain , how do i run it using the source code? i do have c++ builder 6/visual studio 2019/borland c++.
It would be great to figure out how does it run.
Thx

Custom ring cadences do not loop properly

I noticed that when custom ring cadences are provided for distinctive ringing, they do not loop properly.

What I have done is record samples of a standard 500 or 2500 set ringing with each of the different cadences. However, there seems to be some delay between loops, which means the cadence is interrupt with silence between repetitions of the file. It doesn't make sense to record a super long WAV file just to get around this, nor to anticipate the silence in the recording.

I propose that if this is unintentional, this behavior should be corrected so the timing works, or if it is intentional, an option should be provided to loop immediately.

Thank you!

Copy of complex BLF fields to other computer

Hello Tomek,
Hello github team,

i installed Tomek´s wonderful tSIP on a windows system. I created a lot of BLF buttons (more than 50) and other stuff ...
Works great, but now i want to copy this to a other computer for a other extension, I only wanted to change the extension passwort and keep all the other buttons.
But if i copy the directory with all data the changes are all gone.
I do not find anything at %appdata% or elsewhere to copy additional.
Am i blind or what is the trick

thank you for any support
Stefan from Munich/Germany

Multiple IP addresses cause client to not connect

The scenario is a computer has a static IP 10.0.0.1 for eg. and needed it also on other networks so in the advanced added a couple more networks 192.168.1.1 and 10.0.10.1 for example.

This causes tSip to not be able to register (seems to get confused by the networks and default to the wrong IP, so then cannot get to the default gateway) using the default configuration, it also seems to do the same thing if you VPN into a different network, for example an office network, or something like that, (works fine if you open tsip first and register it) but as soon as there are multiple IPs before it is opened it has issues trying to register.

The only way to fix this seems to be go back to one IP/DHCP or to specifically bind tSIP, but the computer may not have a static ip in all cases (DHCP) so binding it to an IP might be tricky, the NIC option in cinfiguration picked up one of the other IPs (not the main one), it seemed to use the last one in the additional IP list eg. 10.0.10.1, but needed to be 10.0.0.1, so the only other way was binding it to the GUID (which might be a bit technical for some people), and not ideal

Removing the extra networks and reverting the PC back to DHCP or single static IP / Network resolves the issue.

Other tested clients do NOT have this issue, they connect and register fine irrespective of the network configuration.

Maybe defaulting to using the network with the default gateway would resolve it?

History ListColumnWidths expands after every program start

After every program start or exit tSIP safes a bigger value for every column.
For example I manually set History -> ListColumnWidths to [ 100, 200 ] in the tSIP.json config file.
I start tSIP and the window shows the columns Timestamp and Name/number as expected under History

After exiting tSIP without changing anything at all I open the tSIP.json again and the values are now [ 125, 250 ] for ListColumnWidths.

After repeating the same procedure the values are [ 156, 312 ], then [ 243, 487 ] and so on.
Until I cannot see the name column in the History window.
And there is no way to rearrange the column width in tSIP let's say with the pointer for a quick correction.

It looks like it has something to do with the GUI scaling.
I have GUI scaling set to 125%.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.