StarTrinity.comMeasuring quality |
The micro-blog is written by Sergey Aleshin, lead developer and owner of startrinity.com. Its purpose is to provide better transparency of our development and to get some feedback and ideas from users. The blog is started on 2014-06-25. Previous activity related to "SIP Tester" product is published here. Video blog with screen recordings is available on youtube.
2024-11-14 Opened access to VoIP/SIP security test features in free trial version of SIP tester
2024-11-11 Implemented RTP media session update (change codec, remote RTP IP address/port/direction) when the software receives UPDATE with new SDP from remote side via SIP
2024-11-07 Created a new CallXML element "update" to test SDP media negotiation within SIP UPDATE method (in addition to RE-INVITE). This has been requested by a new customer from USA
2024-08-22 A customer in Germany was able to make 15000 concurrent G.711a calls with our SIP Tester on a virtual machine with a single server, see details here
2023-02-09 Improved functionality of dialer campaigns in softswitch: added "Max connected minutes per day" limit
2022-09-17 Reached 10000 concurrent SIP calls with G.711a 20ms RTP. Tuned up SIP Tester and NICs at a customer's lab. Used 2 dedicated servers with 2x16x2.7GHz Xeon E5-2680 CPU and 2x4x1Gbit NICs.
2022-04-15 Integrated the SIP Tester and Softswitch software with VOSK speech recognition server (based on Kaldi). With this new feature customers are able to build voice-based IVRs with CallXML scripts.
2022-03-05 Increased freeware licensed limit: 50 concurrent calls, unlimited attempted and received calls.
2021-08-29 Developed API for UAC registrations
2021-09-11 Developed support of SIPREC: now SIP Tester is able to generate calls with 2 RTP streams and play stereo WAV files, to test SIPREC recorders.
2021-08-29 Developed API for UAC registrations
2021-05-28 New CDR fields with received RTP stream statistics: total, discarded, out of order (early, late), erroneous, duplicate packets count
2021-04-07 Improved Web UI for system logs
2021-03-22 Recompiled code with Visual Studio 2019 (latest), .NET 4.6, OpenSSL 1.1.0f.
2020-10-21 Released a new version of SIP Tester with setting "RtpClockFrequencyHz" - to simulate RTP clock skew.
2020-10-10 Released a new version of SIP Tester with "headers" attribute in "disconnect" CalXML element, it was requested by a customer to send custom SIP headers in BYE SIP request.
2020-09-16 Released a new version of SIP Tester with "minlevelvar" attribute in "measuresignal" CalXML element.
2020-07-31 Set up a SIP Tester for a new customer, with custom CallXML script to make sure that their IVR works correctly, all audio files are played in correct sequence. The customer plays few different audio files - tones with 4 different audio levels. SIP Tester measures loudness (level in dB) of the tones and saves results to CDR CSV file. If sequence is not correct, it sends an email alert. For details see documentation for measuresignal CallXML element
2020-05-03 Due to COVID-19 I see 70% increase in web visitors of our "continuous speed test". Weekly pattern of page visits shows that the speed test is used for remote work (and this sounds very good to me). People are having problems with skype, zoom, audio/video conference calls other regular speed tests report false positive results. We are going to increase efforts we put into this product (and suspend some other projects), as I see 550 visitors per day during work days, and 350 visitors per day on weekends. I have a huge list of features requested by users.
2020-01-11 SIP Tester: released new version with "headers" and "tlsversion" parameters in "sendhttprequest" CallXML element
2020-01-11 SIP Tester: released new version with "headers" and "tlsversion" parameters in "sendhttprequest" CallXML element
2019-10-11 SIP Tester: since we consider stability of the SIP Tester as our top priority (more important than adding new features), we continue with improving the stability. Now under special conditions - with playaudio or wait CallXML elements with long wait duration, above 1 hour, and with high numberof calls per second (above 50) - we see a memory leak when SIP Tester takes about 6GB of RAM. It happens because SIP Tester does not release memory of the "waiter" code, during the 1 hour, even when current call is already disposed. So fixing this issue means a refactoring to us, and we love refactoring and improving quality of codebase.
2019-10-05 SIP Tester: released new version: workaround to avoid memory leak with Windows 10, .NET 4.8
2019-09-24
We have all our binaries signed with a "code signing" certificate. My mistake was not to sign it with a "timestamp server" signature. It means that when the certificate expires (in November 2019),
the Windows operating system will have no way to verify date when our software was compiled and signed.
To day we released a new version with the "timestamp server signature", so please update "StarTrinity SIP Tester" software to latest version.
2019-09-01
During previous 2 months I have been dealing with a memory leak in our StarTrinity SIP Tester. I discovered that the leak is caused by Microsoft's update of .NET Framework to 4.8.
On Windows 10 they don't allow downgrading back to 4.7.2 (this is how they degrade quality of the Windows OS). So I reproduced the leak with a sample app and wanted to let them know about the memory leak.
But.. I was not able to report memory leak to the Microsoft. They ask for money to accept the issue. It is not good thet they ask me to pay, even while it is an important memory leak issue, it affects many users.
So this is bad thing about Microsoft.
The good thing about Microsoft is that they open sourced .NET Core under MIT license. Sooner or later I will make my own fork (to gain full control over what I use in my project dcomms.org) and it will be okay.
No new versions will be able to cause troubles for me.
And another good thing is that I found a way to avoid memory leak in WPF DataGrid, to make our SIP Tester customers happy. It is a result of deep research and trying many workarounds.
Developers who see leaks of .NET objects "listdictionary, weakreference, conditionalweaktable, eventhandler" - you can contact me for advice.
2019-08-14 SIP Tester: we developed new CallXML scripts to measure G.107 MOS with custom formula: see here
2019-07-23
Today I work on StarTrinity Softswitch: a customer asked to filter out calls with no RTP from caller side. It is dialer traffic, and some calls do not send RTP, it results in lower total ACD.
So we will analyse RTP statistiocs after call completion, and if caller side does not send enough of RTP, we will add the RTP IP address into dynamic blacklist. We hope to increase ACD on dialer VoIP traffic.
Released new version with CallXML element "getrtpinfo"
2019-07-12 Recently I work on a new "Decentralized Routing Protocol". It is a competitor of SIP and DTLS protocols. It will be used to build truly secure messenger that works without servers (when servers are not able to track sender and receiver IDs), via P2P network. The protocol and C# implementation are open source, under MIT. Whitepaper is here (draft). People who are interested in any kind of collaboration - please contact me.
2019-07-05 SIP Tester: released new version with SRV DNS support. UAC registrations request IP address(es) of SIP server(s) via DNS SRV records, and SIP Tester implements failover behavior - switches to next server IP address when registration or call via current IP address fail.
2019-06-10 Started to work on multiple SRV DNS records in SIP Tester, few customers are waiting for it.
2019-06-05 Published an initial design of encryption procedures in our new open source secure messenger here. Is there anyone who is concerned about privacy when you use Skype or WhatsApp? Do you trust these messengers? And do you trust using gmail in browser via HTTPS?
2019-05-31 Today I got 6 spam calls to my mobile phone. These were SPAM calls from call centers. This number increases, and I have turned on anti-spam filter to silently ignore all caller ID's that are not in my contact list. Businesses are trying to penetrate my attention, and telcos allow them to do it. The telemarketing brings chaos into communications. Same thing with emails, about 6 spam emails per day. Will these numbers increase? Why not? And who will build a new communication system that will automatically block spam?
2019-05-22
Today I faced a problem of having low free disk space on my SSD drive. I need to set up a new virtual machine, and it takes about 20GB, but I had only 20GB remaining out of 250GB. My first idea was to purchase a new SSD of 512GB for virtual machines, it will be enough for sure. And I have money, price is not a problem here. But... I think about environment, and about harm we people make to our earth. Why should I consume more SSD drives?
We should stop infinite growth of consumption! My 250GB SSD drive is used only for windows and Visual Studio, software development, I have one more 1TB HDD for personal data. I clearly remember times when I was pleased with a 120GB disk, and that was enough for everything. What happened?
I found and downloaded a wonderful software tool "WinDirStat" and cleaned 66GB! No excessive consumption, I have enough space now, and I don't really need to purchase new SSD and damage the Earth. The tool clearly shows huge files on disk, and I removed page file, hibernation file, moved installer packages to another drives, removed various unused files.
What about you? Do you care about Earth and the harm we do by mindless consumption?
2019-05-19 Changed algorithm of peer-to-peer network UDP test in Internet Connection Monitor and Continuous Speed Test free and open source tools. Now target bandwidth is allocated much faster, using multiple servers that work in passive mode. The software tool tracks quality of internet conenction, reports uptime percentage and list of outages.
2019-05-08
SIP Tester: released new version and updated documentation about "Jobs" API. Please check here.
Background: many times customers asked "can I run multiple tests with different CallXML scripts at same time?". Many customers use our API to create calls in SIP tester, method "CreateCall_Post".
The method "CreateCall_Post" creates only one CallXML session, and it is not good if tested/discovered bug is sporadic.
Sporadic bugs need thousands or millions of test SIP calls, and they are really hard to reproduce and fix.
So we decided to introduce a concept of "Job" running in StarTrinity SIP Tester, each job having its own call generator and CallXML script. So now customers will be able to run independent SIP tests via API.
2019-05-04 Yesterday I crashed a couple of wifi routers with my new UDP test tool. 4G connection is more stable. The new tool is open source, it is a botnet of interconnected UDP peers. Having multiple peer-to-peer connections to the botnet, the tool continuously measures download and upload bandwidth, packet loss and RTT. There are Windows, Linux, and Android versions. Source code is here: https://github.com/dcomms/dcomms. Do you experience problems with unstable wifi or 4G connection?
2019-04-26 SIP Tester, CallXML: passed SIP header variables into "callfailure" event handler, as per our customer's feature request
2019-04-23 SIP Tester: new parameter "scriptExecutionTimeoutS" for API method "CreateCall_Post"
2019-04-17 I see an interesting thing: many people want to be secured, but they don't want to get into technical details about the security. What about you? Do you think that HTTPS is safe transport? Do you think that SIP over TLS is secure? The questions don't contain an important details about PKI:
2019-04-15
2019-04-09 Working on an extension module in StarTrinity SIP Tester to test radios via multicast RTP: play RTP from WAV file, pass it via radios (backbox), receive audio back and compare it with reference (played) WAV file. Audio verification algorithm decodes audio from RTP and produces MOS score, displays in GUI as table, exports as CSV. Additionally, there will be a module that takes one reference WAV file and folder with input (observed) WAV files as an input and generate table with MOS scores as a result.
2019-03-03 Added a new API method "ClearCache", it was requested by our customer. We see that more and more customers integrate with StarTrinity SIP Tester via API.
2019-01-18 In StarTrinity we work in a team, here is a bit about the collaboration in our company:
2019-01-15 Released new version with "getdblcallscount" CallXML element. It allows to terminate junk traffic (especially test calls) to FAS IVR. A or B numbers which are dialed too often could be sent to IVR.
2019-01-11
Today we added a new module into our StarTrinity softswitch for US domestic telephone market:
"Rate deck comparison tool" - we analyse multiple rate decks (from different companies) - interstate, intrastate rates considering CDR file. It is a simple operation, but it needs high performance, so we do it in C++ code. The module is very simple, but we are going to develop it based on real customers' experience.
2019-01-05 We have finished CDR import module in StarTrinity softswitch. We analysed 3 months of some VoIP traffic (4.2M calls in CDR CSV file) in 36 seconds on an average PC with SSD drive. The result is used to build a blacklist for filter, to block unwanted calls (for the blacklisting we load the number lists directly into RAM, without any databases). This development step makes our switch ready to process CDR data and filter traffic without any external database engine, as we have our own engine.
2018-12-22 Finished recording of training sessions for SIP Tester - 6 videos: see it on youtube. The training should help new users to get general idea about SIP Tester.
2018-12-21 Some customer found out a bug in our SIP stack: we don't increment SDP origin version when we send RE-INVITE, it must be incremented accourding to RFC3264. We released new version with a fix.
2018-11-24 We have fixed an issue in our VoIP packet analyser module: now it supports compact form of SIP headers. Thanks to our customer for collaboration and providing .pcap files
2018-11-21 Published video tutorial about our VoIP readiness tests
2018-11-05 StarTrinity Softswitch: Supported RE-INVITE in 3PCC (open RTP) mode. The open RTP mode is used when you don't want to pass RTP audio via softswitch, when you need to pass RTP directly between originator (client) and terminator (provider). It improves audio quality, and removes unnecessary load from softswitch server, so it can handle 1000 channels on VPS server.
2018-10-25
We released new version. Now it runs on multiple IP addresses, and it is easy to select local IP which is used for SIP.
Why market needs this? 1) run generated (dialer) traffic from a range of IP addresses. A single IP costs much less than single server.
2) sell our StarTrinity softswitch for multiple tenants, having every tenant using his own IP. server costs about 50USD/month. one IP costs 1USD/month. One server is able to handle 20 tenants, every tenant runs 50 concurrent calls. Then we charge something like 50USD/month from every tenant, totally 1000USD/month sales per month, that is much more than expenses. Look profitable, doesn't it?
3) this is also useful with SIP Tester, many our customers have servers with multiple IP addresses and multiple network cards
2018-10-24
StarTrinity SIP Tester:
CallXML: new parameters "localSipAddress", "localSipPort" in "call", "transfer", "sendsipmessage";
new setting "LocalSipAddresses"
2018-10-23
Many GSM terminators get their SIM cards blocked due to test calls. We released new version of StarTrinity Softswitch where with an easy GUI one is able to configure IVR filter. What is "IVR filter"? - it is an advanced VoIP call processing script which asks "press 1 to continue the call" and waits for digit 1 from caller side, in early media (no FAS). The IVR filter works well in few countries and our clients get good results combining this technique with few other techniques.
A quick tutorial: in our softswitch 1) add terminator, destination set, routing group 2) add tariff, service plan, originator 3) originator details - set script type = "IVR filter" 4) make test call
2018-10-20 StarTrinity Softswitch: released new version with module "Dialer Campaigns": Dialer campaigns are VoIP call generators which send calls to terminators (providers). Every dialer campaign has 2 modes of generating A and B numbers: loading the numbers from TXT/CSV file (module "Number lists") and generating random numbers based on pattern. There are 2 script types: simplest IVR - "generate call and play an audio file to destination" and generate looped VoIP traffic - "make call to provider, cancel call or drop it immediately if it goes to another route". In "originators" module we added a setting "script type", it should be set to "receive looped traffic", to link the loop by B number (CLD).
2018-10-15 StarTrinity SIP Tester: released new version with CallXML element "setRtpTxFields", it allows you to modify timestamp, sequence and SSRC fields of transmitted RTP stream
2018-10-09
This week we work on a better UI for our call generator. Many people complain about complexity of StarTrinity GUI and we have to do something to make it easier. Don't destroy old UI but create a new UI, to make it easier for people without technical skills. This will include UI for looped traffic generation.
[my best music for this week: Alessandro Martire - Bright Sky]
2018-10-07
We have got success with our new audio verification algorithm, over G.711 PSTN network. We test full 2-way audio path, including DID number provider and Cisco routers - infrastructure used for call centers. The algorithm now works well only on G711 (not G729), and on one audio file only. But that's enough to identify calls with low audio quality.
We are developing the algorithm in partnership with someone in USA.
Our next step is to make it work on any IVR audio file, and with G729. It should be possible with neural networks.
2018-10-02
In previous week we worked on voice rates import procedure in our new OSS/BSS. I see that it takes more than 2 minutes to import 18K rates A-Z pricelist, with empty database.
I don't like this result, and here I have 3 ways:
1) do nothing and accept this speed of import
2) optimize C# LINQ code to make it faster
3) develop a new C++ module to store voice rates in files, not MSSQL database.
Since our business strategy does not put any deadlines to the development, we are not limited by time and we prefer to select option #3, and it makes me feel good.
Performance is a very important thing in VoIP software. Choosing ways #1 and #2 means to me developing a system with high technical debt, and most probably will never get out of this debt,
as I observe in many other software development companies.
UPDATE 2018-10-05:
I am not rigid, and I listen to my developer: we had a meeting and decided to keep using MSSQL for rates, but test performance with dummy data.
MSSQL is much easier than CSV files, of course, but here we have less control over performance. I like the control, but dont want to be paranoic, wanting 100% control over the performance. If performance is not good with 1500 pricelists, 30K items each, we move to CSV data storage for voice rates.
It is the largest table in the database; and we already store CDR data in CSV, decentralized, not in MSSQL. So now we select the option number 2.
We have achieved improvement: now import of 18K rates takes 24 seconds; but that's still on clean database and SSD disk. We will see performance on a non-SSD server with software RAID and with non-empty database.
2018-09-26 Published new chapters inn our VoIP e-book: SIP extensions, Real-time Transport Protocol (RTP), RTP streams in Wireshark;
2018-09-05
A bit of information on how I manage tasks. The task management is a very important thing, I do it using my own tool "myworkstate".
2018-09-05
Today improved performance of StarTrinity softswitch database procedures and added protection against overloads in database saver thread. (we use our own database based on XML)
Also, today our customer reported a bug in CDR display module: min/max datetime filter did not work correctly. We have reproduced it, fixed and released new version in 1 hour.
2018-08-31 Got a bug report from a customer: our software when it works as a B2BUA (softswitch), with "transfer" element, when a local network adapter runs on 2 IP addresses, works incorrectly. Call leg A works within subnet #1 and IP address #1; call leg B works within subnet #2 and IP #2. But the call leg A receives IP address #2 in "183 session progress" from our software. CallXML element "accept" with "localRtpAddress" = "IP#1" does not help. Why we publish this - we want to focus our own attention and your attention to core reasons of bugs, major problems happening in software products.
2018-08-29 The error that we have found on "france3" server in our SIP Tester is actually not in RTP receiver thread, as I thought initially. It is in SIP thread, and it is caused by "robots", the robots exist in public internet and send malformed SIP packets. Here is a packet which causes the error:
2018-08-28
Our 2-way-audio-verification test for the StarTrinity softswitch "fast RTP proxy" operation mode continues for 6 days, we started it immediately after finishing the code.
we see following confidence score chart (see the image):
update 2018-08-29: the debugging ended up with finding reason of bad audio quality: it is network between "backup5" and "france2" server. There was huge packet loss, even for 10 CC. I expected to find a bug in "fast rtp proxy" module, which would mean that this issue is something that we can fix. If it is network, only thing I can do is to change the server and its network (use another hosting provider), or set RTP TX DSCP flag = 46. Conslusion: before using a server for a serious VoIP project, test the IP network with SIP Tester, for 7 days at least. Hosting providers declare a good bandwidth but in fact they tell FALSE. What I can do - in the softswitch look at "rtp packet loss indicator" during live VoIP traffic. We continue the test with 300CC, and now quality is good again.
2018-08-28
I am going to write not only "good" things in the blog; I hate the way how other customers do the marketing - and I want to start telling the true from myself. Not everything is good. We always have bugs. We always have issues with performance. We are always busy.
A small example - our customer in Cameroon has issues with our softswitch, with status screen. It hangs. This is a temporary performance issue. We need to optimize the code.
I hope the "full" blog will be more interesting to the readers
2018-08-28
Released new version with setting "LocalSIPAddress", it allows running multiple SIP Tester instances on same server with multiple network adapters, distribute SIP load across the network adapters, this is done for a big customer in NZ.
We have regression bugs with another big customer in US, they really get dissatisfied with our software
2018-08-26 This weekend we re-design billing and rating operations in our new StarTrinity OSS/BSS (scalable softswitch + billing system). I don't want to do routing, rating and balance adjustment on one server (central billing database). I want to decentralize VoIP billing - do the AAA, balance updates, rating, CDR statistics calculations on distributed softswitch nodes, in RAM (very fast). In this way I can remove a limit of 1000 calls per second (CPS) per system, it will be about 1000 CPS per softswitch node, and I want to support more than 100 softswitch nodes in a single system.
2018-08-25
Recorded talk about VoIP QA with Zeeshan:
About VoIP Software Quality Assurance (QA), StarTrinity Softswitch, SIP Tester. SIP load testing (stress testing), audio quality tests.
How we develop VoIP software and test it. How we test audio quality. What we don't like in marketing. What we don't like in Linux and C++
2018-08-22 Thanks to the audio verification, we have found a much more serious bug and vulnerability in our softswitch: it does not handle CANCEL from call leg A (UAC) after sending 200 OK. This situation creates a hang call B which is billed without any billing from A. Such situation implies a SIP attack for a VoIP wholesaler: caller side sends INVITE, waits for 200 OK, ignores the 200 OK and sends CANCEL instead of ACK in response to 200 OK.
2018-08-22
StarTrinity softswitch: we test "fast RTP proxy" mode: generate calls at SIP Tester #1, pass via the softswitch to SIP Tester #2, SIP Tester #2 plays echo back to caller side.
SIP Tester #1 (caller side) plays an audio file and verifies audio which is received back (via softswitch), it verifies decoded audio content of RTP packets.
We run test at 500 concurrent calls and 14 calls per second, and we see that 0.5% of calls have bad audio quality (confidence level is below 98%).
Is it a good result or bad result? 99.5% of calls are OK. I am sure that if we increase call load up to 1000 concurrent calls, we would get much more calls with bad audio.
As we are implementing test-driven-development (TDD) strategy this time, we concentrate of the failed calls and we don't continue development until we fix the problem. As I see from logs,
it is related to RTP collision: 2 RTP streams are being sent to same destination UDP port number.
It makes perfect sense, it is second time when we face the RTP collision issue during the the "fast RTP proxy mode" development. here is time chart for the measured confidence score:
With StarTrinity SIP Tester we have 601 commercial users now.
2018-08-17 Continuing work on our real time fast audio verification algorithm ("fuzzy" mode). The algorithm already works, but accuracy is not good. We have a database of IVR audio recordings to verify the algorithm, our unit test procedure runs the algorithm over the recordings and checks its accuracy. So far the accuracy is not good. What we do now is known as test driven development.
2018-08-11
Today we work on our real time fast audio verification algorithm - "fuzzy mode" in our "verifyaudio" CallXML script element.
We have already designed its basic structure: few IIR filters -- power detectors -- low-pass filters -- logarithm function -- here we have vectors of features.
The feature vectors are then passed to convolution operation against same feature vectors of reference file. Output of the convolution is compared to a threshold, to identify initial match.
After finding initial match, the algorithm allows small shifts between reference file and observed (degraded) signal, to compensate RTP clock skew and small jitter disturbances.
The difference between observed signal frame feature vector and reference signal feature vector is accumulated to produce MOS score (from 1 to 5) and "confidence" level (from 0 to 100).
We are looking for business partners who can sell our real time audio verification algorithm; ourselves we are going to use it for FAS detection and IVR testing/monitoring.
2018-08-09
Thoughts on Microsoft monetization strategy with Skype - OTT bypass?
Today I finally got my own understanding - why Microsoft removed option to turn off anonymous incoming calls. I suspect that they are going to monetize Skype with OTT international bypass fraud. People who do not know what is "OTT international bypass" - I will not describe it here, please find explanation in google. It is a global trend in international telecommunication business.
How I see story of Skype:
Dear Microsoft management team, do you read this article and do you hear me now????? I have already uninstalled Skype on my main devices but I would like to have it installed and running again, without receiving anonymous calls at night.
UPDATE: (someone replied to this article and told me that "Skype does not use the telephone number to identify the user") - they really ask to link account with phone number. It is not required though:
Also, I have installed Skype back again on my android mobile phone, just turned off it in background mode (Android settings), now it does not disturb me at night.
2018-08-09 Our RTP proxy module in StarTrinity softswitch does not pass our internal audio quality tests. We generate traffic, pass via our switch to destination, destination plays back echo audio signal, caller side verifies audio and produces audio quality score. And we see that audio quality is very bad for some calls, we really hear bad quality in WAV recordings. We will fix the issue and publish results.
2018-08-04
News from our R&D: our new high-performance RTP proxy in the StarTrinity softswitch works well under 1700 G711 channels (total 3400 call legs).
We have just started the load test. It is on a 30Eur/month hosted server, 1Gbit network, 4-core average CPU Intel Xeon E3-1220 @3.1GHz.
The new RTP proxy will move our switch to the next level.
Here is screenhot of Task Manager:
With G.729 codec the RTP proxy achieves performance of 1750 channels (3500 call legs). Why not much more channels than with G.711? A good question. It looks like packets/second limit, not bytes/second limit.
2018-08-01 Moving StarTrinity Softswitch to the next level: this week we are working on hosting cost optimization. Achieved following: 1500 G.711 channels (1500+1500 for legs A and B, 192bit 20ms RTP packets) for 30 euro/month. it means 300 euro/month for 15000 G.711 channels. We are running voice quality tests with our tester tool, RTP packet loss and jitter are acceptable under such call volume. With G.729 and/or open RTP it will be more channels.
2018-07-26 StarTrinity Softswitch new version - partially replaces ringback tone by custom wav file
2018-07-24 Started to work on advanced anti-FAS algorithms
2018-07-16 Started to work on SIP security testing suite
2018-07-14 We started to work on a new project "StarTrinity OSS/BSS". It will be a huge system including softswitch, routing, billing, CDR analyser, fraud detection/suppression modules, business operations automation module, looped traffic automation module, whitelist/blacklist automation, many other things. Maximum list of features for VoIP wholesale, retailers and terminators.
2018-07-09 Started to work on unit tests and debugging visualisation for audio verification algorithms. Customers have been waiting for this for a very long time
2018-07-07
Got positive feedback from linked-in about the book. Now I start to believe in book writing + SMM as a good marketing strategy, in addition to SEO
Added a small change into CallXML to support usage of our softswitch as IVR server.
2018-06-25 Started an e-book about VoIP troubleshooting
2018-05-19 Implemented control of transmitted DSCP field in CallXML script. Now there is a new parameter "rtpDscp" in "call" and "accept" CallXML elements
2018-05-19 Published sample CallXML script for looped traffic generation in SIP Tester. This kind of script becomes very popular in Middle East VoIP community. SIP Tester or softswitch send generated traffic to some route and receive some part of the traffic back to same IP address, same server. Calls which are terminated by some other route get terminated. Also, the script rejects incoming calls which are not generated by itself. Calls are matched by called number (CLD). There is much to be improved in this script, it has only basic functionality now.
2018-05-16 Got our first customers using the new VoIP Status product:
2018-05-12 Improved our Continuous Internet Test (internet connection monitor): we use 4 redundant servers now to avoid false alarm reports when one of servers temporarily goes offline
2018-04-28 CallXML: supported accessing audio files by URL. Now CallXML scripts can reference audio files from your web server, it is useful when you have many instances of SIP Tester and centralised storage for CallXML and audio files
2018-04-12 VoIP Status: published tutorial
2018-04-06 VoIP Status: we have published it. Everyone who wants to try - please sign up
2018-03-31 SIP Tester: new CDR fields with RTP stream IP ToS (DSCP) field values (requested by someone from US). Recorded video of the coding process
2018-03-31 Published Cisco CUCM configuration manual with StarTrinity SIP Tester, thanks to our partner
2018-03-27 Recorded 2 videos with demo presentations of the StarTrinity softswitch: #1 and #2
2018-03-17 Published screen recording of coding process (our new StarTrinity VoIP Status product): #1, #2.
2018-03-17 We are announcing new software products based on SIP Tester: StarTrinity VoIP Status and "SIP Testers cluster manager". The "VoIP Status" will be a web-based SaaS with SIP Tester-based client and server. We are going to develop much easier web UI to be used by wider audience. More details later. Development videos will be published on youtube.
2018-03-17 Observing some progress in SEO process for our HTTP Test Tool: 17th place in google for keywords HTTP Test Tool, REST client. The continuous speed test has #1 position in google now, and about 100 visitors from google daily. These plain HTTP Test products are very easy to develop, but monetisation is still vague. The HTTP tools still need more development from our side, as we have pending requests from users.
2018-03-16 Published screen recordings of coding process: StarTrinity CRM, StarTrinity VoIP Status.
2018-03-08 Published result of our international VoIP market research. Many people today totally don't understand key components of the market
2018-03-08 Started to offer few more products/services: termination of international generated VoIP traffic and CDR analysis tool
2018-03-07 Recorded development of Click-To-Call HTML button, published to youtube. I make cross-domain HTTP AJAX call to our StarTrinity Softswitch / SIP Tester web API.
2018-03-03 Released HTTP test tool software product to test API's
2018-02-28 After facing with the market, StarTrinity Education System has been turned into "Partner Searching System". We will not educate software developers, instead we will have 50/50 partnership with self-educated developers.
2018-02-24 We have started new project - StarTrinity Education System to raise software developers, hire them or make new projects in partnership
2018-01-09 In 2018 we are going to invest time and efforts in psychological education services. We (me with my wife) will consult people via skype and teamviewer for some USD/hour talking with them about very important things. We will address the problem of poor emotional intelligence, poor psychological and business skills, it is necessary to be happy. This is natural development for our projects BeautifulSoul.ru (psychological education leads to individual psychotherapy), SoftwareBusinessBook.com (the book must be written based on real conversations with future entrepreneurs), MyWorkState (the tool needs some marketing and live users except myself for development). Anyone who is interested in skype consultation for 30USD/hour - please contact me by skype - asv128.
2017-12-24 Softswitch: more and more people use the softswitch and SIP Tester to generate looped VoIP traffic. We have published sample scripts for this.
2017-12-24 CallXML: released new version with CallXML element "getrtpmeasurements" to access RTP measurements in CallXML scripts to make decision about call processing
2017-12-23 SIP Tester: "confidence score" is more reliable than PESQ MOS for unit tests with audio verification
2017-12-22 SIP Tester: The BYE issue should be fixed now in SIP Tester. Next issue is unreliable PESQ audio verification algorithm, it must be 100% reliable especially in unit tests
2017-12-21 SIP Tester: A little piece of information about our internal bugfixing process (we have used not to publish much information about the bugs). One of our SIP Tester customers has found a bug: the SIP Tester does not handle 401/407 response to BYE for incoming calls. It means that when SIP Tester receives a call to incoming CallXML script from registrar server, and if registrar server requests digest authentication for ending of call (BYE), the SIP Tester does not use any user name and password for the BYE request. We need to fix it urgently.
2017-12-21 SIP Tester: we don't understand real reason, but many customers have been asking us for "loop" tests with SIP Tester (looped generated traffic): SIP Tester makes calls to some route, part of calls is delivered back to SIP Tester. Part of calls goes to other termination providers. SIP Tester aborts the call if it gets terminated by another provider (not by SIP Tester itself). We will publish sample CallXML scripts for this setup.
2017-12-17
Softswitch: many people keep telling us that Dbltek GoIP gateways are not good.
In response to that we can tell that we are successfully terminating live wholesale VoIP traffic with 15x 16-channel GoIP16 GSM gateways,
and we get ASR = 11..35%, ACD = 1.6..4.5 minutes.
One key advantage of GoIP gateways is possibility to have the gateways running behind NAT, with dynamic IP address.
There is a way to access gateway's web UI via our softswitch: the softswitch delivers gateway's web UI from internal LAN to public IP address.
2017-12-16 Softswitch: one of our users has finished deployment of multiple GoIP1 gateways connected to the switch in SIM management mode in eastern Europe. It works well so far under small live trafic
2017-12-05 Softswitch: published results of performance test on a cheap dedicated server. Now we have a team of 2 independent technical support technicians: one for GSM Termination, another one for CallXML scripts. In addition to that many users help us with testing. There are few contracts for paid development of the softswitch.
2017-10-29 Softswitch: making one more research on live traffic: effect of TCG (generated traffic) filter on SIM barring/blocking
2017-09-01 Softswitch: successfully passed first live traffic to GoIP GSM gateway in SIM management mode. Works well in some African country. Our next step is to integrate with top-up service to recharge SIM cards automatically.
2017-08-15 SIP Tester: new Web API method "SetScriptForIncomingCalls"
2017-08-11 SIP Tester: new Web API method "StartScript" for better integration into unit test frameworks
2017-08-10 We have started to receive real SEO traffic from google by keywords "voip providers list", "voip route providers list", "NCLI routes". The visitors do send messages to the listed providers. So the VoIP market place has started to work.
2017-08-05 Regarding the softswitch we have decided to implement SIM management features (in competition to GoAntiFraud). Many people say that they charge big money and they are not good, so we will do it better and cheaper. We have a partner in Nigeria to support us with GoIP GSM gateways and SIM banks hardware. Actually too many people are asking about it, because everybody wants to protect SIM cards from blocking.
2017-07-26 SIP Tester: got performance of 2000 channels and 100 calls per second on a VMWare virtual machine by splitting RTP traffic into 3 virtual network adapters. Published CallXML scripts here
2017-07-17 SIP Tester: created new web API methods "StartCreatingCallsOnTimer", "StopCreatingCallsOnTimer", "Cdr/ClearMemory", "ResetCounters" for a customer in Germany
2017-07-09 Started a new project "VoIP marketplace". We are going to publish list of VoIP providers where they will offer NCLI and CLI VoIP routes. There will be anonymous messaging functionality, CDR statistics with ASR, ACD and capacity. We will verify the VoIP termination providers to avoid scam. There will be no way to get into the list unless we invite you; we will invite trusted users of our softswitch and few other trusted termination partners.
2017-06-22 We have got a client who uses the StarTrinity Softswitch for retail VoIP origination and DID forwarding. Working with him on optimization: today we have implemented free calls between originators (softphones). Later we will develop our own cross-platform whitelabel SIP dialer with encrypted signaling and media, audio and video calls
2017-06-16
The softswitch gives me a real and true picture of what is happening in VoIP world.
Today I have observed a new type of originator-side fraud in VoIP wholesale business:
caller side receives 200 OK (connection signal) but they pretend that the packet is lost in internet.
From this time the call is really connected but not confirmed by caller side. Called side (SIP UAS) keeps retransmitting the "200 OK" for a timeout of 45 seconds (default),
and during this time the call is not billed for leg A. The caller sends CANCEL after some time if they no longer need to keep the call connected.
Or they send a delayed confirmation of the connect signal ("ACK" to "200 OK"). In this way they are able to get free calls which have a short duration.
This is a kind of hacking of SIP protocol. Modern revenue assurance subsystems must be able to handle this type of fraud, and we are going to protect our softswitch against it.
Other types of fraud that we regularly see are:
2017-05-25 Supported audio+video calls, released new version of SIP Tester. Now it is able to play any video codec from pcap file. We have recorded pcap files for H.264, H.263+, VP8
2017-05-23 Successfully completed first audio+video encrypted call: G711A and H.264 codecs, SRTP. We have used MicroSIP as a test softphone to check compatibility. The SIP Tester is now able to play any video codec directly from pcap file.
2017-05-01 Optimized CDR query procedures: moved CDR lookup code to C/C++ module. There is still much space for optimization
2017-04-30 As we hear from users, VOS3000 has been hacked. We are taking opportunity to replace it with StarTrinity softswitch
2017-04-17 Softswitch: new API methods to get/add originator's balance
2017-04-09 Softswitch: implemented advanced logic for missed call routes
2017-04-02 Got 2 new customers for softswitch: VoIP retail origination in UK and WoIP wholesale in US. Now working with the new customers to optimize the softswitch for their needs, according to road map
2017-03-24 New API method "/API/MainViewModel/Originators/CreateOriginator" to integrate softswitch with VoIP originator's signup webpage
2017-03-20 We are hiring a person to establish and manage relations with GSM gateway owners in various countries. Budget is 30K USD/year for 100 countries. Also we are looking for GSM gateway owners to connect with us - send incoming test calls from GSM gateways to our server - for 50..100 USD / month. More details here
2017-03-18 We have published first version of our VoIP routes test system (CLI testing) here. You are welcome to test your CLI routes with our new system
2017-03-15 Having our website on 3rd position in Google for keywords "continuous speed test". CTR is good, also usage statistics looks promising
2017-03-13 We have got our softswitch running in at least 3 countries. It is live NCLI (GSM termination) traffic. We continue development of the VoIP softswitch according to feature requests from customers
2017-03-11 Published price for commercial license of VoIP readiness test system: 240USD/year initially. The price includes technical support.
2017-03-09 For VoIP wholesale carriers who need to test new CLI routes: we are working on a service similar to www.i-test.net (our competitor), and we invite you to make free test calls with our beta version of the caller ID delivery testing service. Please contact us for details
2017-03-06 CallXML: saving multiple SDP attributes with same name into separate CallXML variables (it is useful to access "fmtp" SDP attributes)
2017-03-02 Softswitch: flag 'enabled' for routes and tariff rates, it can be used for blacklisting - block calls to specified prefix or call center number
2017-02-24 Started a new product based on StarTrinity softswitch: VoIP routes tester. Target users: VoIP wholesale carriers, tier1 operators. Functions: CLI verification, audio quality testing (MOS, RTT), FAS detection, bypass (blending) detection
2017-02-21 CallXML: implemented "getcdrcallscount" element for advanced TCG logic
2017-02-10 Implemented "floor()", "ceil()", "round()" expressions in CallXML element "assign", attribute "mathvalue"
2017-02-06 Implemented "routing and billing" log in VoIP softswitch, it allows easy troubleshooting from CDR web interface
2017-02-02 Implemented saving SIP trace as TXT files, splitted for every SIP call: settings SaveSipPacketsToDiskAsTxt, SaveSipPacketsToDiskAsTxt_PathPattern (was requested by a customer)
2017-01-11 Cleaned code for routing in StarTrinity VoIP softswitch. Performed minor refactoring
2017-01-10 Added CallXML variable "callNumberInBurst" for advanced testing of conference servers
2016-12-25 Added parameter "sipCallId" into web API method "GetCallsJSON"
2016-12-22 Started to get fairly good traffic from google by keywords "continuous speed test", "continuous bandwidth test", "speed test HTML5". This could mean a new business direction for us
2016-12-20 Adding more features into VoIP readiness testing system for a new customer from US, NV. Testing internet connection stability of few local (Russian) mobile internet providers: there are downtimes, bandwidth is not stable for all providers even if mobile phone is in static position near window with strong signal
2016-12-18 New web API method: /API/MainViewModel/Cdr/GetCallsJSON
2016-12-11 Published a continuous speed test to generate additional network load when running a VoIP test
2016-12-08 Added new setting "EnableRtcpXr" to turn off RTCP-XR reports, because some SIP servers don't support RTCP-XR
2016-12-04 Published an online internet connectivity test to quickly check stability of internet connection before running a SIP test
2016-12-02 Supported SSL v.2, SSL v.3, TLS v.1.2 for SIPS transport
2016-11-30 New API methods: GetCurrentCallsCount, GetVersion
2016-11-28 Supported SRV DNS records (for customers in US and Canada)
2016-11-21 Published an example of integrating VoIP readiness test into a website
2016-11-17 Implemented limit of REGISTER requests per second to avoid overloads of tested PBX
2016-11-12 Published VoIP readiness testing manual with StarTrinity Network Tester
2016-11-06 Improving performance of StarTrinity softswitch, as we got complaint from a customer
2016-10-31 CallXML: implemented "considerThisCall" parameter for "ifcallexists" element
2016-10-28 Implemented HTML-based chart for packet loss, jitter and MOS in StarTrinity Network Tester
2016-10-20 Implemented G.107 MOS measurements in StarTrinity Network Tester
2016-09-22 Improved VoIP recording algorithm in case of VAD and RTP clock skew
2016-09-14 Developed web user interface to manage audio files (for SIP Tester and softswitch IVR systems)
2016-09-07 Developed a CallXML script which checks audio quality and DTMF in 2 ways (for someone in UK)
2016-09-03 Set up demo access to our softswitch with sample configurations
2016-08-18 Using SIP Tester as a test call generator (TCG) to fight with over-the-top (OTT) (Viber) bypass fraud. The Viber international VoIP bypass becomes a bigger problem for telcos in EU
2016-08-09 Minor improvements in CDR and status web UI
2016-08-01 Added CDR field "CalledIP" (requested by some telco)
2016-07-05 Extended web API method "CreateCall_Post", added new method "DestroyCall"
2016-07-05
Loading SIP trace from previously saved PCAP file, if displayed call is loaded from CDR data file after restarting the software
WebUI for passive mode: showing UAC and UAS SIP messages in different colors
2016-07-03 Added setting "CdrDisplaySource" to automatically load calls from CSV CDR files
2016-06-21 Added setting "NatList" to explicitly handle NAT when linking captured RTP streams to SIP call
2016-06-20 Published Web API documentation for SIP Tester and Softswitch; added new method "CreateCall_Post" for someone in Germany
2016-06-17 Implemented basic routing in softswitch
2016-06-16 Fixed a memory leak in VoIP recorder (it is being used by a telecom operator in Turkey)
2016-06-11 Softswitch: implemented call transfer mode "suppressAnswerBeforeRbt", parameters "disconnectOnSilenceLevel" and "disconnectOnSilenceTimeout"
2016-06-07 Implemented multi-tenancy for the softswitch (usage of single server by multiple independent VoIP business owners, shared hosting)
2016-06-02
Successfully tested SIP Tester as VoIP recorder: 420 concurrent G.729 calls, 1.6M totally; 1700 concurrent G711A calls, 1M totally
Added setting "UseSipsInRequestLineUriForTls" to enable "sip:" request-line URI with TLS transport
2016-05-29 SIP Tester as VoIP recorder: new setting "SaveRtpPacketsToMixedWav", requested by someone from Turkey
2016-05-22 Softswitch: implemented AAA and billing, tested
2016-05-21 Softswitch: defined and implemented entities "Terminator" and "Originator"
2016-05-08 UAC registrations: new field "Use for calls only" = "Don't send REGISTER"
2016-05-06 CallXML: added element "disableuacregistration" for someone in US
2016-05-04 Improved RTP stream lookup procedure for passive-mode monitoring, when port is changed by NAT (for a major telco in Brasil)
2016-04-28
CallXML: added "contactHeaderFormat" into "register" element
Added "LocalIpAddress" field into "UAC registrations"
CallXML: "maxansweredtime" parameter for "transfer", "maxansweredtime" event
2016-04-27 CLI: 'infinite' TotalCalls parameter value, to allow continuous generation of calls from command line
2016-04-22 WebUI: call details web page with CDR fields and SIP trace
2016-04-18 CallXML: added "var" attribute into "call" element (requested by customer)
2016-04-17 CallXML: added "from" and "to" attributes into "switch" - "case" elements
2016-04-16 Improved software update procedure
2016-04-12 Extended settings SaveSipPacketsToDisk_PathPattern and SaveSipAndRtpPacketsToDisk_PathPattern settings: now it can contain different patterns for different calls (e.g. incoming and outgoing calls)
2016-04-11 Added a command-line parameter "NumberOfCallsPerBurst" (was requested by customer)
2016-04-10 Published a report of 2-week test between SIPP and StarTrinity SIP Tester
2016-04-07
Recorded a screencast of 8000-channel testing for someone in Japan:
2016-04-07 Sending 200 OK response for PUBLISH and other SIP requests
2016-03-29 Opened public free access to the task management system that I use to get high efficiency - MyWorkState.com. With the MyWorkState I can work work 5..20 hours per week, develop StarTrinity SIP Tester and other products without hiring employees, provide technical support. New users are welcome.
2016-03-26 CallXML: extended "setcallgeneratorparams" for random interval between calls (for someone in Beirut)
2016-03-23
RFC2833 DTMF generation in WinPCAP RTP sender mode
Added CDR field "RTP packets count"
2016-03-22 Testing stability of SIP Tester in WinPCAP RTP sender mode with WAV audio playback: 100CPS, 8000 G711 channels, random call duration: 13M calls are OK with no crashes, no memory leaks, no errors
2016-03-21 Manual aborting (hangup) of current calls in GUI
2016-03-20 Improved performance: got 8000 G711 and 9000 G729 channels with RTP WAV audio playback. Using an Intel 4-port 1Gbit NIC card.
2016-03-08 CallXML: "expires" parameter for "register" element
2016-03-07 Supported SIP URIs like "sip:xxxx@domain;user=phone" for outgoing calls
2016-03-06 UAC REGISTER performance improvements: simulated 100K extensions without CPU overload
2016-03-01 Continuing development of softswitch for France-based telephony application developer. Added a setting "WebApiTrustedIpAddresses" to make it easier for applications to use the Web API
2016-02-28 Implemented change of current audio codec in "reinvite" CallXML element
2016-02-27
"Manual tests" window for individual SIP calls: connect to sound device, send DTMF
Setting "CdrPath"
2016-02-26 "Expires" field for adding batch of UAC registrations
2016-02-24 Sound card module: audio connection to current SIP calls for manual real-time testing and demonstration
2016-02-22
Added "Require100rel" setting to test PRACK (RFC3262) SIP call flows
CallXML: extended "setcallgeneratorparams"
CallXML: "setinterval" element needed for timers
2016-02-21
Extended web API framework to support invoking methods. Added an API "/API/MainViewModel/CurrentCallExists" for integration between 2 instances of SIP Tester (for someone in US)
API method "/API/MainViewModel/Creat-eCall" to integrate StarTrinity softswitch with a web application (for someone in France)
"POST" method for "sendhttprequest" - needed for integration with 3rd party APIs
2016-02-18 Increased prices for SIP Tester
2016-02-13 CallXML: "sendhttprequest" element to integrate with third party APIs
2016-02-09 Packet loss concealment (PLC) for G.711 codec, needed to avoid skew in recorded WAV files when getting lost frames in jitter buffer. It is necessary for PESQ audio verification
2016-02-04 Added setting "DontPrintPortInRequestUri" (requires restart of software)
2016-02-04
I've done a research of sales data: Tuesday is the most profitable day, however most of licenses are sold on Wednesday:
Day of week | Amount | Licenses sold |
---|---|---|
Monday | 13.96% | 16.38% |
Tuesday | 32.19% | 18.36% |
Wednesday | 16.81% | 22.59% |
Thursday | 17.12% | 18.36% |
Friday | 16.14% | 18.07% |
Saturday | 1.37% | 2.54% |
Sunday | 2.36% | 3.67% |
2016-02-03 "Host for calls" and "port for calls" fields in "UAC registrations", used to set different Request URI for REGISTER and INVITE
2016-02-01 CallXML: "disableRtp" parameter for "call" and "accept", requested by someone from Russia
2016-01-30 Custom "Contact" SIP header format for UAC REGISTER (for someone in Israel)
2016-01-25
US market is the best in the world for our company. 49.2% of sales are from the US:
2016-01-18 SIP Tester GUI: "repeatCount" parameter to read destinations from CSV
2016-01-14 Tested SRTP compatibility with MicroSIP softphone. Released new version with SRTP
2016-01-13 Tested SIPS and SRTP with 3M calls, 300 concurrent G.711 calls (SIP Tester -> SIP Tester)
2016-01-12 CallXML: "sipCallId" attribute for "call" element to set custom Call-ID header in INVITE (requested by someone from US)
2016-01-11 Got a successful SRTP call between 2 instances of SIP Tester. Running a stress test now to check stability of both SIPS and SRTP stacks
2015-12-29 Tested SIP calls between 2 SIP Testers over TLS transport: 45 million calls, 500 calls per second, 400 concurrent calls
2015-12-23 Supported SIPS (SIP over TLS transport). Included sample certificate files into installer
2015-12-15 Working on SIPS (SIP over TLS) and SRTP, it has been requested by many people
2015-12-12 Setting "ReuseExistingTcpSocketToTheSameDestination" (for someone in US, Silicon Valley)
2015-12-10
Developed a free cloud-based testing system: managed multi-protocol test agents, web-based test management and reporting.
Currently implemented tests:
2015-12-06 Enabled using of ODBC drivers in "requestdb" CallXML element
2015-12-06 Loading CDR data from database (via ODBC driver), selecting previous test ID(s) to load
2015-12-05 Added new fields into CDR database and CSV file: "100 delay" and "Test ID"
2015-11-28 Generation of "multipart/mixed" SIP packet body
2015-11-20 CDR field and statistics for "SDP negotiation - RTP delay" (for someone in Canada)
2015-11-17 CallXML: "readdb" element to use list of numbers from MySQL, MSSQL, PostgreSQL and other databases
2015-11-13 Setting "WinpcapRtpSenderDscpField"
2015-11-11 WebUI: added "Abort all calls" button
2015-11-10
Achieved RTP jitter less than 1ms with new setting "MediaClockUseSpinWait"
CallXML: "dynamicblacklist" element to implement fast RAM-based dynamic blacklists
2015-11-08 Supported SIP headers with same name in SIP messages
2015-10-28
Setting "RecordedWavFilesAudioCodec" for some client who uses SIP Tester as SIPREC recorder
"Max CPS" parameter to control stepwise testing
2015-10-17 Added fields "RTP_Called_MinDelta" and "RTP_Caller_MinDelta" into CDR
2015-10-13 CallXML: "$timeMs();" syntax element to calculate delays in script.
2015-10-02 Settings to set CPU affinity masks for media, SIP threads, and for entire process
2015-10-01 UAC registrations: "expiration interval" setting
2015-09-30
Added a default CallXML variable "answerDelay".
Added new setting "StartCallGeneratorOnStartup".
2015-09-30 Setting "MediaClockPeriodMs" to minimize transmitted RTP jitter when ptime=20ms (requested by someone from Netherlands)
2015-09-25 Implemented pre-caching of audio files
2015-09-22 SIP Tester now is able to run as windows service - start automatically when windows starts
2015-09-19 CallXML: waitForRingbackToneAbsence, requested by client
2015-09-14 Processing Ctrl+C in command-line mode
2015-09-08 Filter for "reports/statistics", allowing to view stats for subset of calls. Added CDR field "Caller IP address"
2015-08-25 Released new version with syntax interpreter for CDR filter and CallXML "test" function
2015-08-23 Developing syntax interpreter for CDR filter and CallXML "test" function. Using test driven development (TDD) method for this particular task, as it can be effective now. Usually I manage quality of code without unit tests, as they are not very effective
2015-08-20 Loading previously saved CDRs from CSV files to view result of tests
2015-08-19 CallXML: "randfile" syntax to play random file from directory (for someone in US, FL)
2015-08-16 Refactoring CSV CDR code to develop reading of CSV CDR files into memory
2015-08-12 UAC registrations: import/export from/to CSV files
2015-08-10 Added option to filter displayed configuration settings by name and description to optimize UX of configuration
2015-08-09 Published settings documentation on the website
2015-08-05 CallXML: $randdigits(number_of_digits); syntax for random CLI generation
2015-07-30 Added option of saving SIP trace as TXT file and saving to clipboard
2015-07-27 CallXML: implemented "less or equal" and "greater or equal" syntax for "if" and "block"
2015-07-27 CallXML: implemented "enabled" attribute to temporarily turn off execution of CallXML elements
2015-07-23 We have just reached stable performance of 8000 concurrent G.711 calls. RTP packets are parsed for 5% of calls. Total RTP bandwidth is 743Mbps in one direction, splitted into 4 ethernet adapters (Intel I350-4) on 4-core i7 machine.
2015-07-19 Setting "DisableRtpPacketAnalysisOnIpAddresses" to turn off RTP packet processing on selected interfaces
2015-07-19 Tested the SIP Tester with 44 million SIP calls (4 days). 4 NICs were used in WinPCAP RTP sender mode, 1 NIC was used for SIP signaling. No crashes, no memory leaks.
2015-07-19 Network Tester: added CSV and GUI history of packet jitter and loss
2015-07-17
Optimized SIP thread: now reaching 1000 calls per second with i7-3770 in "WinPCAP RTP sender" operation mode.
Tested with 16M during 4.5 hours, no memory leaks detected. Peak memory usage was 3.5GB
2015-07-16 Embedded Visual CallXML script editor into SIP Tester desktop GUI
2015-07-13 WebUI: Fixed compatibility of visual CallXML editor with Internet Explorer and Firefox
2015-07-10 Released new version of UDP Network Tester
2015-07-04 WebUI: Visual CallXML editor
2015-06-24 CallXML: "localRtpAddress" and "sendSdp" parameters for "reinvite"
2015-06-20 The unlimited license for the SIP Tester is free for medical organizations (hospitals, research institutes), charity, and nature protection organizations
2015-06-18 CallXML: "waitforringbacktone" element to test SIP trunks and GSM gateways
2015-06-10 Tested and released new media processing mode: "WinPCAP RTP sender". Now bottleneck is in the RTP packet analyser module
2015-06-08 Running the first stress test with our newest WinPCAP-based RTP stack. With ARP cache performance is better than in "lightweight media processing" mode
2015-06-03
Added a "settimeout" CallXML element custom handling of RE-INVITEs (requested by someone in Finland)
Supported partial-RTP-frame delays in real-time audio verification algorithm (for someone in Denmark).
The customer has a PSTN network on the way from SIP Tester to IVR server, and it caused uneven delays (not multiple of 10ms RTP frames)
2015-06-02 Added a "reinvite" event for custom handling of RE-INVITEs (requested by someone in Finland)
2015-06-01 Added "localRtpAddress" parameter to "call" and "accept" to handle multiple network interfaces
2015-05-30 Refactoring Packet Analyser to optimize the code and to make it usable by the new RTP sender module
2015-05-28 Design for new module "WinPCAP RTP sender" is ready. It will contain implementation of RTP, UDP, IP and Ethernet (L3) protocols, optimized for periodic RTP transmission with incrementing RTP.sequence and RTP.timestamp fields, leaving all other fields unchanged.
2015-05-24 Added new CDR columns "EarlyMediaPeakSignalLevelDb", "ActiveMediaPeakSignalLevelDb"
2015-05-22 Tested performance of 2 network adapters: TP-link TG-3269 vs. Intel EXPI9301CT. OS: Windows Server 2012 R2. Packets: RTP G.711A, 20ms. CPU: Intel i7-3770. Max bandwidth for both of these cards: 4000 channels, approximately 350Mbps. I expected to see some difference between these NIC's performance, but seems like bottleneck is in Windows or drivers.
2015-05-19 New feature: automatic re-register on failure. Was requested by a customer from US
2015-05-18
Could not achieve good performance with pcap_sendpacket(). Max bandwidth was 12.5Mbps. Extra packets were dropped without CPU load.
pcap_sendqueue_queue() provides much better bandwidth: 330Mbps per adapter. CPU is not a bottleneck for both of these functions.
We are going to develop a new module for faster RTP media transmission, estimated time of development is 1 month.
2015-05-15 CDR database schema verification: automatic creation of table and/or missing columns
2015-05-08 Implemented ringback tone detector. Added CDR field "Latest RBT Delay" which can be used to detect FAS
2015-04-29 CallXML: "on" event handlers now can be located inside current element. For example <call ... > <on event="answer"> .... </on> </call>
2015-04-22 CLI parameter "IncomingCallsExitTimeoutSec"
2015-04-20 Getting CSV delimiter from system regional settings
2015-04-18 Extended "sendsipmessage": added "maxtime", "var", "delayvar". It is helpful for checking availability of SIP servers with "OPTIONS" SIP request
2015-04-17 Implemented DC offset removing in signal detector. It is useful for G711 codec
2015-04-11 CallXML: "graceful" mode for "exitcli" element
2015-04-10 Optimized GUI in SIP Tester: display of current SIP calls
2015-04-06 Supported Google Speech API v2, so it is possible to build speech IVRs with our softswitch
2015-04-04 Added a parameter "debugRecordingThreshold" to "verifyaudio" to debug low confidence scores
2015-04-03 Working on in-memory recording. It is needed to debug low confidence issues in audio verification and to collect data before recognizing voice with Google Speech API v.2
2015-03-30 CallXML: "waitforsilence" element for IVR test scripts
2015-03-26 Optimized real-time audio verification algorithm
2015-03-22 UAC registrations: "add batch" - now you can easily add thousand of extensions
2015-03-21 Added setting "LocalSIPPortRange" - now the software can use a range of local SIP ports. Was requested to register multiple extensions at Cisco Unified Call Manager
2015-03-21 Packet analyzer: implemented TCP packets processing
2015-03-20 Packet analyzer: supported VLAN headers (requested for parsing PCAP files)
2015-03-20 Updated web documentation: published architecture diagram
2015-03-15 Real-time mode for audio verification. In this mode time of verification is calculated automatically
2015-03-13 Improved audio verification algorithm. Now it is faster and more accurate. It can search for a known ("reference") phrase in middle of a long IVR prompt.
2015-03-10 CallXML: "exitcli" element
2015-03-09 Updated web documentation
2015-03-03 Re-designed navigation on the website
2015-03-01
Added settings to configure SMTP server port number and SSL mode
Command line parameter "RetryToOpenLocalSipPort" to avoid hanging of CLI when another program already uses local SIP port
2015-02-28 Updated technical documentation: main tutorial
2015-02-23 CallXML: recordcall parameter "mode" - "rx", "tx", "mix"
2015-02-20 CallXML: Implemented dynamic referencing of variables: "$prefix$indexVar;;" and "$prefix[$indexVar;];". It is also useful for a global cache: "$global.someCache[$cacheEntry;];"
2015-02-19 CallXML: "exec" element, similar to "eval" in JavaScript
2015-02-18
Setting "OverwriteCsvCdrFilesAfterRestart" to create new CSV CDR files after every test, and discard old results
Sending 200 OK response for OPTIONS SIP request, it is used to ping SIP servers
2015-02-17 CallXML: "recordmessage", "searchfile" elements
2015-02-15
CallXML: "eofMode", "rowIndex" parameters for "readcsv"
"$env.x;" syntax to use Windows environment variables in scripts
2015-02-12 CallXML: "enqueue", "dequeue" elements. Needed for a customer to implement advanced ("random") conference VoIP application
2015-02-11 CallXML: "getaudiofilelength" element
2015-02-10
Developed a new fast algorithm for audio verification. Tested with 1200 concurrent G.711 calls on 4x3.4GHz i7 CPU. Old algorithm is replaced by new one.
Defined syntax for default parameter values of functions
2015-02-08
CallXML: "getfilenamefrompath" element.
New functionality for offline .PCAP files debugging and RTP media analysis:
- New CDR field: "audio signal level (dB)" for both entire call duration and early media.
- G.729 and G.711 RTP media streams decoding and exporting into WAV files
2015-02-07
Changed "Total calls per second" calculation: now it uses time between first and last call instead of total measurement time
Developed CallXML "includefunctions" element to build complex IVR tests for one of our clients
2015-02-05 CallXML: added "cache" parameter to "include" element to disable caching when it is not needed
2015-02-03 New feature: import of pcap files with SIP and RTP into SIP Tester. It is useful for offline debugging. SIP Tester parses the files, analyses VoIP quality, builds CDRs and reports
2015-01-27
Created a button to create burst of SIP calls manually.
Having an issue with current "fast" audio verification algorithm. It does not work in case of jitter and/or RTP clock skew. Following example demonstrates it.
So I am going to develop a better and faster algorithm for IVR audio verification.
2015-01-24
Tested StarTrinity softswitch in B2BUA mode with G.729 pass-through RTP traffic, 800+800 concurrent calls. Results are good. Published report here.
Now working on SIP Tester's documentation. It needs to be updated.
2015-01-22 CallXML: "getstringlength" to operate with length of dialed numbers or any other strings
2015-01-21 CallXML: option to start calls from the middle of CSV file - extended $seq_sip_uri_from_csv() parameters
2015-01-19 SIP Tester command line: added parameters "LogLevel", "OperationMode", "SaveSipPacketsToDisk", "SaveSipAndRtpPacketsToDisk". It is needed to help a customer to run SIP Tester in passive mode (like wireshark) but without GUI to minimize CPU load.
2015-01-16 I started to work in field of GSM SIP box detectors, and anti-detectors. Solution to problem of international VoIP fraud can give profit.
2015-01-15 CallXML: developed "switch", "case", "default" syntax elements for better routing and unit tests
2015-01-11
Optimized DTMF parsing code and some other code in SIP thread.
Re-tested performance of StarTrinity SIP Softswitch. It handles 1750 G.729 channels, 1300 G.711 channels with no problem.
2015-01-10 I see that domain name "startrinity.net" is taken by one of my past prospects. It is very strange, and I don't know his reason for doing it. If you are reading this, please remember that it is startrinity dot com, not startrinity dot net.
2015-01-10 UAS registrations page: added "SIP Trace" button for debugging
2015-01-09 I hear many people telling me about low quality of GUI: there are too many details, there is need to have non-technical-targeted website. I already have in plans to build a wizard-style GUI for SIP Tester. There will be also a GUI framework for editing CallXML scripts.
2015-01-08
Developed "setcallgeneratorparams" CallXML element and "$timeOfDayInHours();" keyword to simulate variable call load.
For example, it could be a sinusoid with interval = 24 hours:
2015-01-08
Set up a default "callerIpAddress" variable, it is needed to restrict SIP calls from unauthorized IP addresses/
StarTrinity SIP Tester is successfully deployed as a softswitch in one more place (Western Asia)
2015-01-07 Fixed issue with MSI installer "auto-healing" which reverted settings
2015-01-03 Developed "UAS registration and authorization" page. This functionality previously existed in the SIP platform, now just added MVVM-level logic, API and UI
2014-12-26
Developed "CDR" web page. A little bit about code and framework:
Client-side code is simple:
2014-12-25 Developed CDR filter
2014-12-24 Implemented SIP trace view for passive mode in SIP Tester
2014-12-15
Working on CDR filters:
2014-12-15 Improved performance of CDR datagrid. Added option to hide unnecessary columns
2014-12-13 Made a research of MVVM/C#/XAML -> HTML5/JS web frameworks, but could not any suitable one.
2014-12-10 I am developing a proprietary "StarTrinity Web UI framework". I personally dislike frameworks like ASP.NET MVC, Kendo UI, or WebForms, so building something different on my own.
2014-12-09
Developed CallXML elements to make a pause in test if destination server fails: "startCallGenerator", "movingAveragePut", "movingAverageGet", "movingAverageReset".
The feature was requested by a customer from Canada. I am happy to get it done in a short time. Here is a sample script.
3 more customers are waiting for some other features.
2014-12-05 Developed new RTCP VoIP quality CDR fields, history charts. Updated CDR table schema. RTCP fields are calculated in RTP media threads, independently from winpcap threads
2014-11-29 CallXML: added "localRtpPort" parameter to "call" and "accept" for explicit RTP port number assignment
2014-11-26 Added settings "UseAsCaller" and "UseAsCalled" for UAC registrations
2014-11-25 Created a web interface in addition to desktop-based GUI. Web server is hosted inside the process, no IIS setup is needed
2014-11-21 I am working on something new, and I'm not comfortable to publish all the new ideas here before they come alive. Besides that, the SIP Tester got few new RTCP fields in CDR. The RTCP fields should be really useful, because they provide information about VoIP quality which is measured by remote SIP-UA, not only by SIP Tester.
2014-11-20
Added CallXML event "audioSignal" for "call" and "transfer" elements
Implemented sending of RTCP and RTCP-XR reports to third party destination for analysis and monitoring. It is configured with settings "RemoteRtcpMonitorAddress" and "RemoteRtcpMonitorPort"
2014-11-18 Added CDR field "ReleasedBy": "caller" or "called". It identifies which party aborted the call: UAC (caller) or UAS (called)
2014-11-17 Implemented recording of SIP and RTP packets to .pcap files for further debugging. It was requested by many customers.
2014-11-14 Added SIP proxy setting for UAC REGISTER
2014-11-08
Made a research of SIP Tester's performance on virtual machines. Published results here.
Added settings:
2014-11-07 Fixed an issue related to RTCP and NAT. The RTCP packets were sent to incorrect port
2014-11-05 Got an issue of a difference (offset) between system clock and NIC timestamps on a customer's virtual machine. Difference is few minutes, restart of the VM does not help. NIC clock is wrong, system clock is right. To handle this situation I created a setting "UseNicTimestampsForCdr" (default 1) which allows to use system clock instead of NIC's clock.
2014-11-04 Enabled RTCP XR reports. They still contain uninitialized G.107 MOS and R-factor fields.
2014-11-01 Added CDR fields: RTP_Caller_Delay, RTP_Called_Delay - time between INVITE and first RTP packet
2014-10-30 Compiled DLLs for both 64 and 32 bit modes
2014-10-27 Finally moved to .NET 4
2014-10-23 Supported "audio/telephone-event" content type for SIP INFO DTMF packets
2014-10-22
2014-10-21 Added an option to generate multiple SIP calls in a burst. Developed and tested in an airplane when returning back home
2014-10-19 Added a button to make a pause when generating calls in SIP Tester. This button does not reset CSV file readers. [was requested by a customer]
2014-10-18
Today I was thinking about future development of CallXML. There should be a relatively cheap VoIP platform with many custom apps running on it.
The apps will be written in CallXML, they will be maintained and suported by developers. CallXML will be extended to provide web interface for VoIP apps.
2014-10-12 Improved startup time of SIP Tester. Now it takes 5 seconds. Previously it was busy with pre-encoding 20 seconds G.729 silent audio data, now it is only 1 second. Should be enough
2014-10-11 Added "Created" and "Answered" fields to "Current calls SIP info" screen. Previously the fields were only in "Calls History". It was suggested by someone anonymously via a "Feedback"
2014-10-10 Now SIP Tester saves results of testing (CDR records) to a database using ODBC driver. It could be MSSQL, MySQL, MariaDB or any other database with ODBC drivers. Having CDRs in database is useful for many purposes: e.g. if you want to show call quality reports in your own GUI, or if you want to access information about calls in "requestdb" SPs
2014-10-07 The SIP Tester is going to have a web interface soon. It will have an option of running as a windows service
2014-10-06 Supported standard codecs with dynamic payload type (pt <= 96)
2014-10-03 Separated CallXML and system logs in SIP Tester's GUI
2014-09-30 Developed some logic elements for monitoring and restarting a generic Windows SIP Server if it stops to accept SIP calls
2014-09-28
Added an option of sending email reports at specific time of day, with optional reset of statistics after sending email. The email reports are useful to control status of SIP Tester.
Enhanced "block" test condition logic: added "OR" and "AND" syntax elements
Added "if" and "else" syntax elements
2014-09-26 Added jitter and answer delay indicators into status panel, so they are always visible for control [the feature was suggested by someone from Australia]
2014-09-22 Removed a ":" in default User-Agent field, because it conflicts with Zultys IP-PBX
2014-09-22 I made a research of hardware IDs. Here is a list of non-unique (duplicate) MAC addresses:
2014-09-21 I am working on a licensing module. There is something to improve in it. It is the time when I should not be fast in design, because I have to maintain backwards compatibility for license keys. There is much of hardware ID statistics collected from clients to analyse.
2014-09-19 Added lower threshold into email alerting module: now it sends email also when call quality becomes normal again
2014-09-18 Developed "measuresignal" CallXML element to analyse received RTP stream
2014-09-17
I got an interesting observation related to G.729 codec: after encoding silence and decoding it, it produces a small defect of -36dB:
2014-09-17 Added "level" parameter to "waitforsignal" to configure threshold of measured signal
2014-09-16 Developed "substring" element for CallXML scripts
2014-09-15 Added CPU load display to the main screen in SIP Tester
2014-09-12 Developed "function" and "runfunction" elements. CallXML is becoming more powerful.
2014-09-11 I have a customer who is extensively using CallXML, developing new features for him:
2014-09-09 Added "getstatistics", "resetstatistics" CallXML elements to access statistics programmatically. It was requested by a customer to build an intelligent router in CallXML
2014-09-08
2014-09-07 Implemented "less than" and "greater than" conditions for "block" and "goto" CallXML elements
2014-09-07 Added 'syncDestroy' mode for 'conference' CallXML element
2014-09-02 Refactored GUI, added split panels: simulation and results
2014-08-31 Got our 100th customer today, on Sunday. This customer received a license for 2x more concurrent calls as a bonus. New development still takes most of the time, because our efficiency is good enough to support 100 customers.
2014-08-31 'readcsv' now reads CSV file from disk when repeating lines. Previously the lines were not updated in case if file was modified.
2014-08-28
I have an idea of a new and better GUI for SIP Tester. Many customers have requested a possibility of viewing both stress parameters and reports on the same screen.
2014-08-26 A customer reported problem with 'writecdr'. This was because of weak code of storing custom CDR fields. I refactored the code, now it works
2014-08-24 Added re-register button
2014-08-23 Implemented automatic backup of settings and CallXML scripts
2014-08-21 Developed GUI for codec settings and RTP playback. Previously it was possible to configure these settings only by editing CallXML script
2014-08-20 Now SIP Tester makes backup of current DLL and EXE files before upgrading its version
2014-08-19 SIP Tester supports Opus at 48kHz, SILK at 12/16/24 kHz, AMR-WB at 8kHz. Checked it with Blink and microsip softphones.
2014-08-18 Working on RTP module to support sample rate other than 8000Hz. It is needed for wideband audio codecs like Opus and Silk. I use "Blink" softphone for interoperability tests, it suports opus@48kHz.
2014-08-18 Installed Ubuntu 14, Asterisk PBX 11.7.0 for performance and stability tests. It crashed after few minutes of 150-channel call load. FreeSWITCH was muc more stable compared to this version of Asterisk. I should write an article about Asterisk vs. FreeSWITCH performance and stability.
2014-08-16 Writing unit tests for CDR reporter, CSV file reader.
2014-08-13 Writing unit tests for SIP Tester's scheduler. I am not using any unit testing framewroks, because they contain almost no logic inside, and because I need some special features which are missing. It is easier to write and maintain own unit testing framework.
2014-08-13 Found an issue related to transition from silent G.723 and G.729 audio frames to non-silent frames. Changed behaviour of RTP module: now G.729 and G.723 silent packets are not transmitted during <wait /> CallXML element
2014-08-12 Still fighting with memory leak of 18 bytes per call, it leaks in a non-basic operation mode.
2014-08-09 Added more features which were requested by for customers: CDR filter by SIP status code and uniform probability distribution of interval between generated SIP calls.
2014-08-07 It looks like I completely fixed memory leaks in SIP Tester. Reason was in BSTR's and SysAllocString. I had to turn off OLE string cache. I will have to do more tests in different modes with at least 20M calls to check it, but now I see that .NET memory is not leaking and that native memory is not leaking. Heaps' sizes are stable during the test so far.
2014-08-04 Added option of custom domain name in "From" SIP header [requested by a customer]
2014-08-01 Defined status code 1408 (NoResponse) for case when aborting SIP call before geting any response from destination
2014-07-28 Added feature of stopping outgoing calls on schedule with manual start [was requested by a customer]. Optimizing code of SIP Tester with VS profiler
2014-07-26 Optimized media processing module: now WSASendTo() takes 71% of CPU time for 2800 G.711 channels, ptime=20ms, 64 media threads, lightweight media processing mode, 25CPS.
2014-07-25 Measured call load capacity of 54Mbps 802.11g WLAN: 24 G.711 channels = 2.1Mbps, it is much less than theoretical 54MBps (3.9%).
2014-07-24 Disabled watchdog timer by default because it takes extra CPU resources and because usually there are no deadlocks in SIP Tester
2014-07-24 Measured RTP round-trip delay over 802.11g wifi network for 2 different distances between endpoints: 1 meter and 3 meters with wall, results are very interesting: connection was better, almost perfect in case of 3 meters. It is all very complicated, requires long-duration tests.
2014-07-22
Measured RTT over LAN, RTT over internet,
now measuring RTT over local wireless LAN.
Fixed a bug in call scheduling which was reported by someone in Lebanon.
2014-07-22 Successfully tested FreeSWITCH with 2200 G711 channels. It showed good performance: RTP jitter was fairly low. Reported here
2014-07-21 Observed FreeSWITCH crash again after 2.89 million simulated SIP calls @5.4CPS, 500 pass-through G.711 channels. There was a memory leak of 303MB (from 397MB to 700MB), i.e. 104 bytes per pair of SIP calls (incoming + outgoing).
2014-07-21 Developed "getwg67info" CallXML element to save RX RTP extension data in WG-67 format and to measure round-trip delay from NIC timestamps
2014-07-20 Implemented WG67 PTT-type RTP loopback connections to measure round-trip RTP audio delay. This delay is controlled during ED-137 performance testing of air traffic management (ATM) VoIP networks in airports.
2014-07-19
Added settings for recorded WAV file names: "RecordedWavFileNamePattern" and "DebugMediaFileNamePattern". It was requested by a customer.
..FreeSWITCH passed 1.42 million calls, RTP jitter is OK. Answer delay is not OK: it was up to 21 second.
Memory has increased from 380MB to 508MB - probably there are memory leaks in FreeSWITCH.
In next few months I am going to carry out massive load tests with FreeSWITCH, Asterisk, FPBX, Kamailio and some other software
2014-07-18
Added "contentType" attribute to "sendsipinfo" CallXML element. Example: <sendsipinfo value="the text" contentType="text/plain" />
FreeSwitch is still alive with 500 G.711 pass-through channels, 1.14 million SIP calls
2014-07-18 Removed option of license without link to machine ID because I noticed unauthorized usage of SIP Tester by some third parties who did not purchase any licenses.
2014-07-17
Oops, FreeSwitch crashed! It could pass only 1063151 SIP calls.
I could investigate reason of crashing with Visual Studio debugging, but I have no time for this right now.
Exception code is 0xc0000005 - access violation.
I am continuing test with 500 G.711 channels, 9 calls per second. It is a basic test with passthrough codec..
I wonder how often it will crash with more complicated logic - IVR, recording, media transcoding
2014-07-16 Now SIP Tester passes remote SDP attributes into CallXML variables. It is needed for ED-137 tests
2014-07-16 Testing FreeSwitch 1.5.12-64bit with 800 G.711A channels, 14 calls per second, passthru mode, Windows Server 2012. 1 million calls - still no crashes, no memory leaks. FreeSwitchConsole.exe takes 640MB. Will continue the test.
2014-07-15 Fixed mode "Make calls via least busy UAC registration" - now it does not make calls with same 'From' and 'To' SIP headers
2014-07-13 Successfully generated a SIP call with Speex codec, 8kHz (dynamic payload type)
2014-07-11 'setrtpextension' CallXML element is ready, released new version. Next steps of development are: 1) pass SDP attributes to CalLXML variables 2) implement PTT-SQU loop 3) measure PTT-SQU response delay based on NIC timestamps
2014-07-09 Working on 'setrtpextension' CallXML element. It will turn on/off RTP extension data in transmitted RTP stream. The element will be used to simulate SIP UAC and UAS endpoints for EUROCAE WG67 ED-137 VoIP software testing.
2014-07-07 A customer had a problem with memory leaks on his server, and he suspected that it was SIP Tester. In fact, SIP Tester consumed only 160MB for 4000 calls during 2 days of operation. Reason was in svchost.exe, which took all the memory.
2014-07-07 Passed test with 834K GSM calls (70 channels, 4 days 4 hours, 2.3 calls per second) - no crashes, 229 MB memory consumed at end of the test. Performance of playing .pcap files should be improved.
2014-07-03 SIP Tester successfully played .pcap file with GSM RTP codec (payload type = 3)
2014-07-01 Tested new version with 14 million SIP calls at 144CPS during 1 day and 3 hours. No crashes.
2014-06-30 Added settings DeclareG711AInSDP, DeclareG711UInSDP, DeclareG723InSDP, DeclareG729InSDP. Started to work on playing audio RTP from .pcap files, hereby supporting any audio/video codec
2014-06-30 Finished test: there is still a memory leak of 46 bytes per 1 SIP call. Tested @100CPS, 9M calls.
2014-06-29 Fixed RFC4028 implementation. Added option of exporting/importing setings from/to XML file. Added 2 modes of current calls limit: "outgoing+incoming" (default), "outgoing only".
2014-06-28 Thanks to Frequentis AG, they helped me to find an issue in implementation of RFC 4028 (Session Timers). Fixing it now.
2014-06-27 Discovered memory leak of 547 bytes and 2.5 packets per SIP call. It is related to new feature of saving packets to memory. ... Fixed this leak, it was in C++ code, linkedlist.hpp. C# destructors seem to be reliable, they cause no leaks. Will run more tests at night.
2014-06-27 Improved GUI for incoming CallXML script: made delay before answering optional. It can be turned off now. [this was requested by Frequentis AG, Austria]
2014-06-26 Exported first .pcap file with SIP and RTP packets
2014-06-25 Today I've started to work on saving packets into memory and later into .pcap file. The new feature will be disabled by default, it will be turned on using settings: "[bool] save SIP packets to memory" "[bool] save RTP packets to memory", "[bool] save to file [from memory]", "[bool] save to file [from memory]"
2014-06-20 I discovered an interesting ratio in my business analytics system's report: 54% of SIP Tester customers use CallXML scripts instead of GUI. This could mean 2 things: 1 - default scripts which are represented by GUI are very limited; 2 - CallXML is easy to use. In 2009, when I started to implement CallXML, I could not even imagine that customers would be able to use it directly without GUI.
2014-05-24 I performed several tests with same hardware and 3 different operating systems: Windows 7, Windows Server 2008 R2, Windows Server 2012. Different networking operations were tested: receiving, sending packets using winsockets, and sniffing packets using winpcap. It turned out that IP stack of Windows 7 is not able to operate with more than 50MBps of UDP traffic without packet losses (drops).