Code Monkey home page Code Monkey logo

tinyphone's Introduction

Tinyphone

Minimalist Softphone based on PJSIP with API Control

Tinyphone Build

Getting Started

Checkout the repo and follow the building process to compile your own, or just download the latest version from the downloads section.

Installation

You can download the latest msi installer from here or from the releases section.

[Optional] After Installing you can customise the tinyphone properties by downloading and placing the config file in the folder C:\Program Files (x86)\Tinyphone\.

APIs

The softphone exposes the following resources on port 6060.

Resource Method Payload Description
/ GET Returns hi and the app version
/events WS WebSocket endpoint for realtime events
/login POST
{
"username": "string" ,
"login": "optional-string**" ,
"password": "string",
"domain": "string",
"proxy": "optional-string**"
}
Account login with the provided details
/logout POST Logout of all accounts
/accounts GET Returns list of registed accounts
/accounts/{account_name}/logout GET Logout of account with provided account_name
/dial POST
{
"uri": "sip-uri",
"account": "account_name**" 
}
Dial a call with provided sip-uri
/calls GET Returns list of active calls
/calls/{call_id}/answer POST answer call with specified call_id
/calls/{call_id}/dtmf/{digits} POST Send dtmf digits digits to call with specified call_id
/calls/{call_id}/hold PUT Hold call with specified call_id
/calls/{call_id}/hold DELETE UnHold call with specified call_id
/calls/{call_id}/conference PUT Create conference by merging other running calls with given call_id
/calls/{call_id}/conference DELETE Break specified call_id out of conference
/calls/{call_id}/transfer POST
{
"uri": "sip-uri",
}
transfer call_id to specified uri
/calls/{call_id}/attended-transfer/{dest_call_id} POST Initiate attended call transfer
call_id=The call id to be transfered
dest_call_id=The call id to be replaced
/calls/{call_id}/hangup POST hangup call with specified call_id
/hangup_all POST Hangup all calls
/exit POST Exit the application

** Optional Fields, should exist only with valid value

You can view the postman collection of the APIs here

Building Locally

Pre Requsite

You must have boost libraries installed on your system. Incase you don't have you can either download the sources and build it, or install a precompiled binaries from here.

Manual Compiling

git clone https://github.com/voiceip/tinyphone.git
cd tinyphone
git submodule update --init --recursive
#build dependencies follow appveyor.yml#build-step
#open lib/pjproject/pjproject-vs14.sln in visual studio 2015 and compile it
#open tinyphone/tinyphone.sln in visual studio 2015 and compile it (you will need to compile the dependencies in lib/* folder)
run tinyphone/Debug/tinyphone.exe

Issues & Contribution

Found a issue and have a solution? Go ahead and create a pull request :) Incase you don't have a immediate solution but have an replicable issue please create an Issue with the details so that we can have a look at it.

tinyphone's People

Contributors

kingster avatar pdesaulniers-vertisoft avatar ploufs 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  avatar

tinyphone's Issues

Add transfer call

Please add the ability to transfer the call.

API ex:
POST /transfer/{call_id}/to/{sip} (or /refer/{call_id}/to/{sip}) or use body json

If you need more information, please let me know.

Thanks!

Metrics S

Hi!

Any example for the metrics server?

Ring and delay X sec when auto-answer (optional)

Hello!

In the latest version you have disabled ring for auto answer.

But, please tell me, you can add a delay (optional in config.json autoAnswerDelay: [seconds]) for auto-answer and if autoAnswerDelay is enabled (maybe check exist optional autoAnswerDelay and/or autoAnswerDelay > 0 seconds) then play ring?

Thanks!

Sending # via dtmf

Hey there maybe iam blind, but is it possible to send a # via dtmf? i tried it and there is an 404 Error.

I really need to send a # tho

{{host}}:6060/calls/1/dtmf/1 - works
{{host}}:6060/calls/1/dtmf/# - doesnt

Error connecting to sound card on VM

Hello,
We use Tinyphone successfully on physical computer having a sound card. But when installing it on a VM machine having also a sound card (virtual or shared from the hardware) we always have an error when tinyphone connect to audio device.

Error : "ERROR Connecting Audio device, Please contact Floor IT Support"

We don't figure what is missing in this context so tinyphone can open a channel to audio device.
Do someone have an ideas?


In the log of Tinyphone, the différence begin with line "pjsua_aud.c !Conf connect: 0 --> 0" appearing when the problem occurs.


Part of Tinyphone Log when connect ok :
2022-12-20 14:38:49.465 phone.cpp Found Device #6 SPDIF Out (Realtek HDA SPDIF Out)
2022-12-20 14:38:49.465 phone.cpp Found Device #7 Mixage stéréo (Realtek HD Audio Stereo input)
2022-12-20 14:38:49.465 phone.cpp Using Default Audio Device(s)
2022-12-20 14:38:49.465 pjsua_aud.c Set sound device: capture=-1, playback=-2
2022-12-20 14:38:49.465 pjsua_aud.c Set sound device: capture=-1, playback=-2
2022-12-20 14:38:49.465 pjsua_aud.c .No changes in capture and playback devices
2022-12-20 14:38:49.466 phone.cpp Restoring User Accounts 0
2022-12-20 14:38:53.182 pjsua_core.c !.RX 264 bytes Request msg OPTIONS/cseq=1 (rdata004B09FC) from UDP 68.67.53.126:5060:
OPTIONS sip:216.226.54.101:65476 SIP/2.0
Via: SIP/2.0/UDP 68.67.53.126:5060;branch=z9hG4bK7205733
From: sip:[email protected];tag=6fd74539
To: sip:216.226.54.101:65476
Call-ID: [email protected]
CSeq: 1 OPTIONS
Content-Length: 0


Part of Tinyphone Log when error occurs :
2022-12-20 14:19:34.932 phone.cpp Found Device #6 Speakers (USB Audio Device)
2022-12-20 14:19:34.932 phone.cpp Found Device #7 Microphone (USB Audio Device)
2022-12-20 14:19:34.932 phone.cpp Using Default Audio Device(s)
2022-12-20 14:19:34.932 pjsua_aud.c Set sound device: capture=-1, playback=-2
2022-12-20 14:19:34.932 pjsua_aud.c Set sound device: capture=-1, playback=-2
2022-12-20 14:19:34.932 pjsua_aud.c .No changes in capture and playback devices
2022-12-20 14:19:34.938 phone.cpp Restoring User Accounts 0
2022-12-20 14:19:35.089 pjsua_aud.c !Conf connect: 0 --> 0 ****** DIFFERENCE HERE ******
2022-12-20 14:19:35.089 pjsua_aud.c .Set sound device: capture=-1, playback=-2
2022-12-20 14:19:35.089 pjsua_aud.c ..Opening sound device (speaker + mic) PCM@8000/1/20ms
2022-12-20 14:19:35.673 pjsua_aud.c ..Opening sound device (speaker + mic) PCM@44100/1/20ms
2022-12-20 14:19:35.688 pjsua_aud.c ..Opening sound device (speaker + mic) PCM@48000/1/20ms
2022-12-20 14:19:35.702 pjsua_aud.c ..Opening sound device (speaker + mic) PCM@32000/1/20ms
2022-12-20 14:19:35.715 pjsua_aud.c ..Opening sound device (speaker + mic) PCM@16000/1/20ms
2022-12-20 14:19:35.729 pjsua_aud.c ..Opening sound device (speaker + mic) PCM@8000/1/20ms
2022-12-20 14:19:35.742 pjsua_aud.c ..Unable to open sound device: Unanticipated host error [status=469998]
2022-12-20 14:19:35.742 pjsua_aud.c .Error opening sound device: Unanticipated host error [status=469998]
2022-12-20 14:19:35.742 media.cpp pjsua_conf_connect(id, sink.id) error: Unanticipated host error (status=469998) [E:\lib\pjproject\pjsip\src\pjsua2\media.cpp:218]
2022-12-20 14:19:35.755 phone.cpp TestAudioDevice Error Unanticipated host error

getting dtmf

Hey , i have install and running the app and is work perfect , but i would like to ask is possible to get dtmf from caller?not send but receive it so to able to show calls based on caller selection?

Thanks

'enumDev': is not a member of 'pj::AudDevManager'

hey , i am getting this error when trying to build on this step

open tinyphone/tinyphone.sln in visual studio 2015 and compile it

Severity Code Description Project File Line Suppression State
Error C2039 'enumDev': is not a member of 'pj::AudDevManager' tinyphone c:\projects\tinyphone\tinyphone\server.cpp 151

Any idea to fix?

Add outgoing or incoming call prop

Please, add a prop about the initiator of the call or a prop outgoing or incoming call

outgoing calls:

{
    "calls": [
        {
            "account": "[email protected]",
            "callerId": "11002",
            "displayName": "",
            "duration": 5,
            "hold": "NOT_IN_HOLD",
            "id": 0,
            "party": "sip:[email protected]",
            "sid": "426a029a22b54787ad772ab357ec3f10",
            "state": "CONFIRMED"
        }
    ],
    "count": 1,
    "message": "Current Calls"
}

incoming calls:

{
    "calls": [
        {
            "account": "[email protected]",
            "callerId": "11002",
            "displayName": "",
            "duration": 3,
            "hold": "NOT_IN_HOLD",
            "id": 3,
            "party": "sip:[email protected]",
            "sid": "812ca396b36947e5bbefe6cfcd7be2c9",
            "state": "CONFIRMED"
        }
    ],
    "count": 1,
    "message": "Current Calls"
}

Feature: Convert Conference to Transfer and leave

Here's what I'm trying to do:

  1. I do a first call to Tinyphone (call 1)
  2. I answer call 1
  3. I do a second call to Tinyphone (call 2)
  4. I answer call 2
  5. I pass to the conference function the call_id of call 2 (conference work)
  6. hangup call 2 (call end)

I want call 2 to stay on a call with call 1 and the softphone to be off the call.

Dial JSON body ignored/not parsed

Hi,

when you try to POST to /dial following JSON

{
"uri":"sip:[email protected]",
"account":"[email protected]"
}

input isn't parsed and following error occurs:

(2021-02-06 21:51:41) [INFO    ] Request: 127.0.0.1:45210 01732580 HTTP/1.1 POST /dial
(2021-02-06 21:51:41) [INFO    ] Dial Request to {"uri":"sip:[email protected]","account":"[email protected]"}
(2021-02-06 21:51:41) [ERROR   ] Exception catched : Invalid Request URI (PJSIP_EINVALIDREQURI)
(2021-02-06 21:51:41) [INFO    ] Response: 01732580 /dial 500 0

It attempts to dial wrong:

2021-02-06 21:51:41.397   pjsua_call.c !Making call with acc #1 to {"uri":"sip:[email protected]","account":"[email protected]"};transport=tcp

but when you post only sip:[email protected] to /dial, it works.

Login fails on 3CX - missing "login" field

Hi, when I try to login to 3CX, i get this (in 3CX log):

02/05/2021 2:18:24 PM - [CM102001]: Authentication failed for AuthFail Recv Req REGISTER from 192.168.4.226:18437 tid=Pj06b2879a07b243ba95552c277079e4ba Call-ID=1a80b33572124f73b19350e600773b73:
REGISTER sip:192.168.4.195;transport=tcp SIP/2.0
Via: SIP/2.0/TCP 192.168.4.226:18437;rport=18437;branch=z9hG4bKPj06b2879a07b243ba95552c277079e4ba;alias
Max-Forwards: 70
Contact: <sip:[email protected]:18437;transport=TCP;ob>;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-0000-0000-000097ad08d1>"
To: <sip:[email protected]>
From: <sip:[email protected]>;tag=7bec73af99f246aebc8c6633792b7c45
Call-ID: 1a80b33572124f73b19350e600773b73
CSeq: 18510 REGISTER
Expires: 600
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Proxy-Authorization: Digest username="103",realm="3CXPhoneSystem",nonce="414d5359601d45a083:47bb22553dc552c83b26fd6b077f78f5",uri="sip:192.168.4.195;transport=tcp",response="1fca031cc1b2f85162db0ec0f5bd4ff2",algorithm=MD5
Supported: outbound, path
User-Agent: TinyPhone Pjsua2 v36.0.0.79
Content-Length: 0
; Reason: Credentials don't match, check that authorization-ID and password match the ones in extension settings

tinyphone log:

2021-02-05 14:18:25.409   pjsua_core.c !.RX 328 bytes Response msg 404/REGISTER/cseq=18510 (rdata038CCF60) from TCP 192.168.4.195:5060:
SIP/2.0 404 User unknown.
Via: SIP/2.0/TCP 192.168.4.226:18437;rport=18437;branch=z9hG4bKPj06b2879a07b243ba95552c277079e4ba;alias
To: <sip:[email protected]>;tag=e240be14
From: <sip:[email protected]>;tag=7bec73af99f246aebc8c6633792b7c45
Call-ID: 1a80b33572124f73b19350e600773b73
CSeq: 18510 REGISTER
Content-Length: 0
--end msg--

MicroSIP logs in ok with same login data BUT it's sending another field ("Username" - 103 and "Login" - CJ7TuEHxxx) and you can see this additional field here:

https://www.microsip.org/help#login

How we can send "Login" and "Username"? I tried this but it isn't working:

{
	"username": "103",
	"password" : "password",
	"domain" : "192.168.4.195",
        "login":"CJ7TuEHxxx"
}

Public address or no incoming voice (media delivery issues)

Hello!
I was on vacation and now I have checked my incoming calls, everything works great!

But I have a problem with an incoming voice. (media delivery issues)

I use corp VPN, in microsip "Public address" I select ip corp VPN (172.20.239.15), then there is an incoming voice, if auto, then there is no voice.

In tinyphone, how can I select "Public address"?

I attach tinyphone logs.
17-11-2020-tinyphone.log

Issue with merging calls for conference

Hello, I'm trying to setup a conference call with Tinyphone and I'm running into an issue with merging multiple calls together.

Here's what I'm trying to do:

  1. I do a first call to Tinyphone (call 1)
  2. I answer call 1 and put it on hold
  3. I do a second call to Tinyphone (call 2)
  4. I answer call 2
  5. I pass to the conference function the call_id of call 1

The issue is that the two calls are not put in conference together. Am I doing something wrong?

LINUX

The project can be compiled for linux?

编译无法通过

使用vs2015打开pjproject,无法编译成功,报缺库,添加依赖后,又出现这样的错误。
1>pjmedia-x86_64-x64-vc14-Debug.lib(errno.obj) : error LNK2019: 无法解析的外部符号 Pa_GetErrorText,该符号在函数 pjmedia_strerror 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(errno.obj) : error LNK2001: 无法解析的外部符号 Pa_GetErrorText
1>libpjproject-x86_64-x64-vc14-Debug.lib(bcg729.obj) : error LNK2019: 无法解析的外部符号 initBcg729EncoderChannel,该符号在函数 pjmedia_codec_bcg729_init 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(bcg729.obj) : error LNK2019: 无法解析的外部符号 closeBcg729EncoderChannel,该符号在函数 pjmedia_codec_bcg729_init 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(bcg729.obj) : error LNK2019: 无法解析的外部符号 bcg729Encoder,该符号在函数 pjmedia_codec_bcg729_init 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(bcg729.obj) : error LNK2019: 无法解析的外部符号 initBcg729DecoderChannel,该符号在函数 pjmedia_codec_bcg729_init 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(bcg729.obj) : error LNK2019: 无法解析的外部符号 closeBcg729DecoderChannel,该符号在函数 pjmedia_codec_bcg729_init 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(bcg729.obj) : error LNK2019: 无法解析的外部符号 bcg729Decoder,该符号在函数 pjmedia_codec_bcg729_init 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(pa_dev.obj) : error LNK2019: 无法解析的外部符号 Pa_Initialize,该符号在函数 pjmedia_move_samples 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(pa_dev.obj) : error LNK2019: 无法解析的外部符号 Pa_Terminate,该符号在函数 pjmedia_move_samples 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(pa_dev.obj) : error LNK2019: 无法解析的外部符号 Pa_GetHostApiCount,该符号在函数 pjmedia_move_samples 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(pa_dev.obj) : error LNK2019: 无法解析的外部符号 Pa_GetHostApiInfo,该符号在函数 pa_get_default_input_dev 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(pa_dev.obj) : error LNK2019: 无法解析的外部符号 Pa_GetDeviceCount,该符号在函数 pjmedia_move_samples 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(pa_dev.obj) : error LNK2019: 无法解析的外部符号 Pa_RefreshDeviceList,该符号在函数 pjmedia_move_samples 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(pa_dev.obj) : error LNK2019: 无法解析的外部符号 Pa_GetDeviceInfo,该符号在函数 pjmedia_move_samples 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(pa_dev.obj) : error LNK2019: 无法解析的外部符号 Pa_OpenStream,该符号在函数 create_rec_stream 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(pa_dev.obj) : error LNK2019: 无法解析的外部符号 Pa_CloseStream,该符号在函数 pjmedia_move_samples 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(pa_dev.obj) : error LNK2019: 无法解析的外部符号 Pa_StartStream,该符号在函数 pjmedia_move_samples 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(pa_dev.obj) : error LNK2019: 无法解析的外部符号 Pa_StopStream,该符号在函数 pjmedia_move_samples 中被引用
1>libpjproject-x86_64-x64-vc14-Debug.lib(pa_dev.obj) : error LNK2019: 无法解析的外部符号 Pa_GetStreamInfo,该符号在函数 pjmedia_move_samples 中被引用

AutoAnswer property in config ignored

Hi,

for some reason, autoAnswer=false is ignored from config.json, see following incoming call log:

2021-02-06 22:22:40,866 INFO  - WS: {"displayName":"Matko","from":"100","incomming":true,"party":"\"Matko\" <sip:[email protected]>","state":"INCOMING","type":"CALL"}
2021-02-06 22:22:40,866 INFO  - WS: {"callerId":"100","displayName":"Matko","id":0,"party":"\"Matko\" <sip:[email protected]>","sid":"57844acb-2e0e-4ab0-8f1d-f4a56382c9c0","state":"INCOMING","type":"CALL"}
2021-02-06 22:22:40,891 INFO  - WS: {"callerId":"100","displayName":"Matko","id":0,"party":"\"Matko\" <sip:[email protected]>","sid":"57844acb-2e0e-4ab0-8f1d-f4a56382c9c0","state":"CONNECTING","type":"CALL"}
2021-02-06 22:22:40,892 INFO  - WS: {"callerId":"100","displayName":"Matko","id":0,"party":"\"Matko\" <sip:[email protected]>","sid":"57844acb-2e0e-4ab0-8f1d-f4a56382c9c0","state":"CONFIRMED","type":"CALL"}

In config, auto answer is disabled:
"autoAnswer" : false,

incoming calls not hangup

I can't turn off incoming calls.

I Tried;
localhost:6060/hangup_all
and
localhost:6060/calls/$id/hangup

I use:
"autoAnswer" : true,
"autoAnswerDelay" : 1000

Select account for dail

Hello! How i can use select account for dail? if i have logged more 1 accounts?

{
    "accounts": [
        {
            "active": true,
            "id": 0,
            "name": "901@{{host}}",
            "status": "OK",
            "uri": "sip:901@{{host}}"
        },
        {
            "active": true,
            "id": 1,
            "name": "903@{{host}}",
            "status": "OK",
            "uri": "sip:903@{{host}}"
        }
    ],
    "message": "Accounts"
}

Thx!

Low volume / no sound between participants in conference

Hello,

We are experiencing an issue with the 'conference' feature.

During a conference, the host can hear the participants at a reasonable volume, and the participants can also hear the host. However, the participants can barely hear each other. It seems like the audio between participants is very quiet.

Here is an example scenario:

  • Participant A calls Host. The volume is decent; they can hear each other clearly.
  • Host puts Participant A on hold and calls Participant B. During that call, Host and Participant B can hear each other at a decent volume.
  • Host initiates a conference with Participant A and Participant B. Both participants can barely hear each other; the volume is very low.

Do you know why this issue might occur? Or, do you have any suggestions for debugging this problem?

Here is the content of config.json, in case it might be related to the issue:

{
	"audioCodecs": ["PCMA/8000/1", "PCMU/8000/1", "G729/8000/1"],
	"dropCallsOnFail": false,
	"firstRetryIntervalSec": 15,
	"maxAccounts": 3,
	"maxCalls": 4,
	"pjThreadCount" : 2,
	"pjMediaThreadCount" : 4,
	"pjLogLevel": 3,
	"retryIntervalSec": 30,
	"timeoutSec": 600,
	"refreshIntervalSec" : 120,
	"transport": 1,
	"uaPrefix": "TinyPhone Pjsua2 v",
	"prefferedAudioDevices" : [ "sound", "usb" , "headphone", "audio" , "microphone" , "speakers" ],
	"useDefaultAudioDevice" : true,
	"securityCode" : "D9C853F4897CF64307DB652246827FAC83111303F3E207F8FD9F5E5DC89A9EF9",
	"autoUnHold" : false,
	"testAudioDevice" : true,
	"unregisterOnDeviceError" : true,
	"deviceErrorAlert" : true,
	"disableVAD" : true,
	"clockRate" : 8000,
	"enableNoiseCancel" : false,
	"ecTailLen" : 200,
	"enableWSEvents" : true,
	"enableMetrics" : false,
	"metricsProto" : "UDP",
	"metricsServerHosts" : ["10.47.192.13"],
	"metricsServerPort" : 8125,
	"autoDeviceRefresh" :  true,
	"autoAnswer" : false,
	"persistAccounts" : true,
	"enableSTUN" : false,
	"enableICE" : false,
	"stunServers" : [ "stun.l.google.com:19302" ],
	"handleNOTIFY" : true,
	"autoAnswerDelay" : 1000
}

Version 36.0.0.79 error on startup

Hello, I just downloaded Release version 36.0.0.79 and installed it with the msi file onto Windows 10 Pro.

When I run Tiny Phone I get the following error.

Tinyphone Error

Failed get accounts

Hello!
If i have logged more (account1, account2) accounts, i can logout account1 POST /accounts/{{username}}@{{domain}}/logout,
bur after rest POST {{host}}:6060/accounts return error http code 500:

{
    "message": "Something went Wrong :("
}

log http:

(2020-10-29 16:49:39) [INFO    ] Request: 127.0.0.1:53731 012D0DF8 HTTP/1.1 GET /accounts
(2020-10-29 16:49:39) [INFO    ] Response: 012D0DF8 /accounts 500 0

log app:

2020-10-29 16:55:52.812    account.cpp !pjsua_acc_get_info(id, &pj_ai) error: Invalid value or argument (PJ_EINVAL) (status=70004) [..\src\pjsua2\account.cpp:1022]

and after try send login account1 (POST {{host}}:6060/login) return and crash app:

{
    "account_name": "901@{{host}}",
    "id": 0,
    "message": "Account already exists, but login progress, please try again in sometime",
    "result": 202
}

if use logout all (POST {{host}}:6060/logout) no problem, all work very good!

Thx!

Log file always in the same file while running

When Tinyphone starts, it create a new log file. After it continue to write to this file all the time until shut off.
Problem is when it run for long time and with many activities, log file grow on and on.

Proposed solution : Start a new log file each day (Close the previous one)

No voice in call

Hey.
I have installed your app but in call I cant listen anything.
I try it In a laptop to make sure is not something that have to do with my main pc and same happen.
Is something related to config file? To setup devices?

Thanks

Build Issues on Windows using Visual Studio 2019

Description

Encountered multiple build errors when trying to compile the tinyphone project on Windows using Visual Studio 2019.

Steps to Reproduce

  1. Open Visual Studio 2019.
  2. Clone the repository.
  3. Click on tinyphone.sln to open the solution.
  4. Right-click on the Solution 'tinyphone' and build.

Expected Behavior

The project builds without errors.

Actual Behavior

Received multiple errors during the build process.

Error Details

Error 1: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use

/MD[d].
File: afx.h
Line: 24

Error 2: CMake Error running 'C:/Program Files (x86)/Microsoft Visual

Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe'. Error: ninja: error: build.ninja:743: multiple rules generate src/bcg729.lib [-w dupbuild=err].

Error 3: Cannot open include file: 'statsd.hpp': No such file or directory.

Project: statsd-cpp
File: statsd.cpp
Line: 12

Error 4: Cannot open include file: 'wcautil.h': No such file or directory.

Project: installer-actions
File: actions.cpp
Line: 5

Error 5: Cannot open include file: 'wcautil.h': No such file or directory.

Project: installer-actions
File: LogResult.cpp
Line: 6

Environment

  • OS: Windows 10
  • Visual Studio 2019 v 16,11.34
  • Components
    • C++ MFC for latest v142 build tools (x86 and x64)

Any help or guidance on resolving these build issues would be greatly appreciated.

Conference is Missing

tinyphone is an effective SIP API. It has everything for normal SIP operation except conference.

Can you please add the Conference option?

Answer

Please add api for answer.

Add costume message for matrics

Greetings!
Sorry, but within a couple of days, I have not been able to check answer on incoming calls, but as soon as this opportunity arises, I will definitely check! :)

And now, I want to ask you to add the ability to send a costume message in the matrics. I think POST /matrics,
body:

{
  "action": "open",
  "message": "text message"
} 

and this is sent to matrics.

example:
tinyphone.[action]: [message]|c|# version = 36.0.0.79

out:
tinyphone.open:text message|c|# version = 36.0.0.79

Thanks!

WS Not working

jquery.simple.websocket.js:99 WebSocket connection to 'ws://127.0.0.1:6060/events' failed:

var webSocket = $.simpleWebSocket({ url: 'ws://127.0.0.1:6060/events' });

WebSocket Example is not present.

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.