About us

We are an IT company in Argentina that specialises in communications and custom software development.

We offer a wide range of services, among which there are: outsourcing, consulting and specialized software development.

Our services offer our customers the opportunity to optimize their projects, innovate and grow through external management of part or all of their computer processes. This allows them to have highly qualified personnel working for them over a certain time period.

We have a well-trained, experienced team that offers custom software development and innovative computer solutions for local and international customers. The team includes computer science graduates, computer technicians, electronic and software engineers, teachers and professors committed to Research and Development.

We handle a broad variety of technology and tools that enable us to optimize and expedite the stages of the software development process. We implement solutions in low and high level programming languages for customers seeking specialized development services.

 

Why Fantommers?

Fantommers is a wise choice when deciding where to outsource IT projects.

Argentina has become an important destination in regard to the international IT field, ranking among the top choices when having to choose an outsourcing/nearshore provider. Some of the reasons for this is the fact that our country has a highly competitive market and highly trained professionals.

Our competitive costs (especially compared to countries like the U.S. or Western Europe); being in a similar time zone; being able to communicate in English or Spanish; being from a compatible culture; and having a human department that is well-known for their skills and expertise are some of the reasons why Fantommers is a wise choice when deciding where to outsource your projects.

In recent years, in our country and region, public policies that support the creation of technology-based companies have been launched. These policies have resulted in the consolidation of strategic areas and scientific parks.

Our office is part of this new stage. It is based in the CUR-CERIDER, a strategic area with a dense institutional framework associated with universities, government offices and CCT-CONICET Organizations for Research, Development and Innovation (R + D + i). This location allows us to take advantage of the institutional strengths leading to synergy between the participants involved.

In Fantommers, we work every day to help strengthen technology-based companies and provide them with high adaptability and flexibility.

 

Worked for:

These are some of the companies we have worked for in different projects.

 

Case Studies

STB Display

A Set Top Box (STB) is a device for receiving and decoding analog or digital television (DTV). The Set Top Box UTE-740 is a device developed specifically for digital television in Argentina.

Softswitch MSK-10 Support

The Softswitch is a device that handles the signaling and service management in next generation networks (NGN - Next Generation Network). It is responsible for switching and routing IP packets between the different means of access or within the network gateways.

Nat MGCP

Network address translation (NAT) allows to modify the IP packet header to change the destination of IP packets. Sometimes it is necessary not only to act on the network layer (IP) but on the transport layer (eg, UDP) or presentation (eg, SIP). In the case of IP phones, this type of NAT establishes calls between different endpoints on different networks without the need for a STUN server.

SMS Harbor

The GSM network allows sending and receiving text messaging using Protocol Data Units (PDUs) containing DELIVER and SUBMIT commands. These PDUs can be generated and controlled by a series of AT commands on mobile devices. Other commands such as STATUS-REPORT and COMMAND can be used in the GSM network to verify receipt of the message, shipping information, etc.

Lowe's System Maintenance

Lowe's Companies, Inc. is an American chain of home improvement stores that have retail stores in the United States, Canada and Mexico. Lowe's Companies, Inc. is ranked # 43 on the Fortune 500. Founded in 1946 in North Wilkesboro, North Carolina, the chain now has over 14 million customers a week in its 1,781 stores in the United States, Canada and Mexico.

Orcu Mobile

Orcu , founded in 1951, is the first financial company in consumer goods in the city of Parana, Argentina. It aims to provide financial services to each of its current and future customers through excellence in service, quality, cooperation and experience.

STB Display

Introduction

A Set Top Box (STB) is a device for receiving and decoding analog or digital television (DTV). The Set Top Box UTE-740 is a device developed specifically for digital television in Argentina. The user interface is done through interactive menus displayed on the TV or monitor connected to the STB. It allows reception of HD, SD and mobile TV under ISDB-T standard. It also incorporates Internet connection and software to run Ginga interactive applications on the TV.

Project

Design, coding and implementation of menus and display module of the STB.

The design was done in a modular way separating the graphs from the functional module, allowing the management of multiple selectable skins.

The module was developed using the abstraction layer for the Linux graphics hardware (fbdev - frame buffer). Support for infrared remote controls via LIRC module of GNU / Linux was also implemented.

STB UTE-740 allows high graphics performance with limited memory.

Some of the menus developed:

  • Real-time information of programming.
  • Configurations, general and AV.
  • Electronic Programming Guide (EPG).
  • Channel blocking.
  • Picture in Picture (PIP).

Technologies

  • Operating Systems: STLinux.
  • Languages: C.
  • APIs: directFB, LIRC.

Softswitch MSK-10 Support

Introduction

The Softswitch is a device that handles the signaling and service management in next generation networks (NGN - Next Generation Network). It is responsible for switching and routing IP packets between the different means of access or within the network gateways.

Project

Improvements and maintenance of Microtrol Softswitch MSK-10 and its components:

  • Microtrol Command Center: software for users control, gateways log, route management, and call control in a network of voice over IP (voip).
  • MGCP Call Manager: software for control and signaling calls through gateways CPGs (using MGCP signaling), with support for incoming or outgoing calls to gateways Class 4 (using Q931 signaling).
  • SIP Call Manager: software for managing endpoints on Session Initiation Protocol (SIP).
  • Proxy Sip: management software for the Session Initiation Protocol (SIP) trunking from operating.
  • Gateway Class 4: software to connect to the public telephone network (PSTN) through the SS7 protocols, R2, ISDN and MGCP.
  • Media Proxy: software for relaying means for RTP/RTCP flows.
  • Additional tools: different tools to log, trace, configuration and system monitoring.

Technologies

  • Operating Systems: MS Windows 2000.
  • Languages: C, C++.
  • Database engines : MS SQL Server 2000.
  • Protocols: SIP, MGCP, H323, SS7, Q931, RTP/RTCP.

Nat MGCP

Introduction

Network address translation (NAT) allows to modify the IP packet header to change the destination of IP packets. Sometimes it is necessary not only to act on the network layer (IP) but on the transport layer (eg, UDP) or presentation (eg, SIP). In the case of IP phones, this type of NAT establishes calls between different endpoints on different networks without the need for a STUN server.

Netfilter maintains a set of hooks inside the Linux kernel that allows the kernel to register callbacks functions in the network stack. A registered callback function is called for every packet that passes through the respective hook within the network stack.

Connection tracking is a feature which allows the kernel Nerfilter track all logical network connections or sessions established.

Project

NAT was used to modify the messaging packages Media Gateway Control Protocol (MGCP) between a private network and a public network. To this purpose, the connection tracking and helpers from GNU/Linux Netfilter were used and also an interface with statistical data connections was created via GNU/Linux procfs (/proc/natmgcp).

The new connections are captured by interpreting the SDP, to be later used and referred to the audio or video packets with protocol Real Time Protocol (RTC / RTCP).MGCP packets that contain a modified SDP are correct network addresses.

Technologies

  • Operating Systems: GNU/Linux.
  • Languages: C.
  • APIs: Netfilter.

SMS Harbor

Introduction

The GSM network allows sending and receiving text messaging using Protocol Data Units (PDUs) containing DELIVER and SUBMIT commands. These PDUs can be generated and controlled by a series of AT commands on mobile devices.

Other commands such as STATUS-REPORT and COMMAND can be used in the GSM network to verify receipt of the message, shipping information, etc.

Project:

SMS Harbor is an API library to send and receive SMS messages through different programming interfaces. Communication is achieved via AT commands supporting a large number of devices. The library can also be accessed as a Windows Service through various IPC methods such as pipes, tcp or dynamic libraries.

Some features of SMS Harbor:

  • Sends and receives messages in 7Bit format: It can handle 160 characters per SMS. Implements the 7Bit alphabet in its completeness (mapping to ISO-8859-1, escape characters, etc.).
  • Supports messaging on 16-bit UCS2 format: It can handle 70 characters per SMS. Implements the UCS2 alphabet in its completeness.
  • Sends and receives messages in Flash format.
  • Supports Delivery reports.
  • Sends and receives long messages. Messages are concatenated In 7bits format from 153 characters. In UCS2 format are concatenated to 67 characters.
  • Allows the use of interfaces in various technologies: Microsoft Control .Net (C#, Visual Basic, etc..). Low-level interface for C, C++. ActiveX for VB6. Interface for VBA. Allows you to run any Microsoft Office App (Access, Excel, PowePoint, Word, etc..). Java Object. ODBC Database.

Technologies

  • Operating Systems: Windows.
  • Programming languages: C, C++.
  • Interface languages: VB6, C# .NET, JNI Java.
  • APIs: ATL, COM, C++ boost.

Lowe's System Maintenance

Introducción

Lowe's Companies, Inc. is an American chain of home improvement stores that have retail stores in the United States, Canada and Mexico. Lowe's Companies, Inc. is ranked # 43 on the Fortune 500. Founded in 1946 in North Wilkesboro, North Carolina, the chain now has over 14 million customers a week in its 1,781 stores in the United States, Canada and Mexico.

Project

The maintenance service identifies code reported problems in Lowes system and provides a solution based on log analysis, reproductions and code analysis. The maintenance team is composed of a technical leader and a group of senior developers in C/C++.

The support and maintenance nearshore team of Lowe's system performs the following tasks:

  • Reproduction of known and unknown problems.
  • Analysis of problems and search for the root cause if not known.
  • Design of solution to known problems.
  • Coding of known problems.
  • Improvement and optimization of code.
  • Generation and execution of Test cases (Unit testing, Integration testing, smoke test, etc..)

The service provides comprehensive documentation of each step of the maintenance process to contribute with development guidelines and to increase and expand the knowledge database.

Technologies:

  • Operating Systems: IBM AIX.
  • Programming languages: C, C++, Python, ksh.
  • Database engines: IBM DB2.
  • Tools: FlexeLint, CVS, DBX.

Orcu Mobile

Introduction

Orcu, founded in 1951, is the first financial company in consumer goods in the city of Paraná, Argentina. It aims to provide financial services to each of its current and future customers through excellence in service, quality, cooperation and experience.

Proyecto

Orcu MOBILE is a service platform that can be adapted to the system of pre-existing software of a finance company. It seeks to open additional communication channels to the company, thus guaranteeing better interaction with customers, suppliers, employees, etc.

It is highly scalable, since it allows to add new services, new technologies in media access, capacities or new features and/or improvements to the system.

The system offers customers the following features, all accessible by different means of access (online, e-mail, SMS, Interactive Voice Response (IVR)):

  • Check of Balance and Maturity dates.
  • Virtual Recharge.
  • Block card.
  • Check of Promotions available and shipping discount code after consulting a promotion.
  • Account Summary.

Technologies:

  • Operating Systems: Windows XP, UNIX/Linux.
  • Programming languages: Visual Basic .NET, C, C++, Python, XSLT.
  • Database engine: MySQL.
 

Technologies

Multi-platform development

Multi-platform systems allow their execution over different types of hardware (x86, PowerPC, etc.) or software (Unix/GNU-Linux, MS Windows, Mac OS, etc.).

Embedded Systems

Such systems are designed to perform a specific functionality, usually within dedicated hardware.

Communications Systems

The communications and telecommunications systems allow the transmission of data, audio and video in a communications network called Next Generation Network (NGN).

Low Level Programming

Low-level programming is the software development which uses languages that do not have, or maintain, a minimal abstraction from the underlying hardware. This type of language allows rapid performance with very little memory since it is in the lowest layer of programming, close to the hardware.

Multi-platform development

Multi-platform systems allow their execution over different types of hardware (x86, PowerPC, etc.) or software (Unix/GNU-Linux, MS Windows, Mac OS, etc.).

We have extensive experience in multi-platform development over different types of software. We have developed an abstraction layer in C / C++ that allows easy transition between different operating systems (OS) without duplicated code or performance loss. It implements a set of important system interfaces, including most of the methods of Inter Process Communication (IPC) and OS dependencies, including:

  • Files: Uses most operations on files and directories.
  • Signals: Allows communication between processes by means of a signal handler associated with a signal.
  • Sockets: Handles STREAM, DGRAM and RAW sockets.
  • Message queue: Abstraction of the message queue for sending and receiving messages asynchronously.
  • Pipes: Supports two-way communication between local processes through named or non-named named pipes.
  • Semaphores: Involves handling traffic lights for managing concurrent processes in critical regions.
  • Shared memory: Abstraction of the shared memory, allowing the use of the same memory space within different processes.
  • Threads: Thread management, independent from the software platform.
  • Config: Allows configuration using different methods on different platforms (registry, conf files, etc.).
  • Mutex: Allows synchronization between concurrent processes.

Our multi-platform developments also include passing from a native system to another system. After the analysis of the code is done, the dependencies of the OS API are identified to create a split function that supports the new OS, leaving the original OS support intact. A new project is generated using the tools according to the target system (make, MS VS, Xcode, etc.). The multi-platform code is then added.

.

Embedded Systems

Such systems are designed to perform a specific functionality, usually within dedicated hardware.

Within the system there are one or more modules that control it by means of a specific software and a special hardware where memory resources and processing speed are generally scarce.

In such systems, it is essential to have an optimized design of the code that uses the least amount of memory possible and keeps the performance at the highest level, taking into account that the design is responsible for controlling devices in real time.

Embedded systems use cross compilers for code generation. These compilers generate machine code for a different platform on which the compiler is running and then the generated code is transferred to the device to be used.

Here is a list of some of the uses of embedded systems:

  • In factories and industries for instrumentation, automation, monitoring and production.
  • In mobile communications devices, television and telephony.
  • In devices for locating and monitoring vehicles.
  • In appliances for alarms, sensors, remote controls, etc.
  • In automation, for handling of different services such as heating, lighting, security, etc.
  • In urbanism for signage, transportation, traffic, etc..
  • In medicine for different diagnostic systems.

Among these types of systems we have worked with Programmable Logic Controllers (PLC) and with STB development.

Communications Systems

The communications and telecommunications systems allow the transmission of data, audio and video in a communications network called Next Generation Network (NGN).

These networks may be distributed remotely in different physical locations, enabling them to interact with each other by means of Call Agents, Media Gateway Controllers or Access gateways.

Therein, media information (data, video or audio) is encapsulated in data packets which can be transported, for example, to an voice IP network (VOIP).

Our work in this area includes support and development of new features for the a Softswitch (MSK-10), solutions of NAT traversal problems in VoIP networks, among others.

Some of the protocols in which we have worked are:

  • MGCP: Media Gateway Control Protocol, usually used to control the PSTN gateways.
  • SIP: Session Initiation Protocol. Establishes communications sessions.
  • RTP/RTCP: Real-Time Protocol / Real-Time Control Protocol. They define a media stream where audio or video are packed using codecs previously agreed.
  • H.323: Defines a set of protocols that allow, among other things, handling call signaling and registration management for audio and video transmission in packet networks.
  • Q.931: Used to establish calls in an ISDN network (Integrated Services Digital Network).
  • SS7: Signalling System No. 7 , used in public telephone networks (PSTN).
  • ISDN: (Integrated Service Digital Network). Used in public telephone networks (PSTN).
  • R2 Signalling: Used for the transmission of information between telephone switches.
  • Asterisk: We also develop applications and modules based on the Asterisk PBX.
  • Audio Codecs: We work with a variety of audio codecs such as G711 U (PCM-U), G711 A (PCM-A), G729, G723, etc.

Low-level programming

Low-level programming is the software development which uses languages that do not have, or maintain, a minimal abstraction from the underlying hardware. This type of language allows rapid performance with very little memory since it is in the lowest layer of programming, close to the hardware.

Low-level programming is usually used to control or perform specific operations on hardware devices. Low-level software modules are kernel extensions to the operating system or drivers that integrate with it.

We list some of the uses of low level programming:

  • In drivers for controlling a device connected to a PC.
  • In operating system modules for extended functionality.
  • In embedded systems for specific hardware.
  • For real-time systems where guaranteeing response times deterministically is needed.
  • In communications systems.These systems need high performance for processing the underlying protocols and control various dedicated HW.

We have worked with the following low-level languages:

  • Assembler: It is the lowest level language. Each operation is translated into a machine instruction.
  • C: It is considered low level, since the language reveals to the programmer the underlying architectural details.
  • C++: It can also be considered low-level since the underlying architectural details can be exposed despite the language abstraction.

We have a wide experience in development of modules GNU / Linux kernel and device drivers on different platforms.

 

MOBILE APPS AND WEB DEVELOPMENT

We develop systems which interact with a wide range of devices and frameworks

Mobile apps allow interconnection between distributed users through a cellular system. Mobile applications are more secure and customizable than a website, besides being faster, they allow access to all the functionalities of the device (in case of native Apps).

Versions of HTML5 and CSS3 combined with new programming frameworks and client-side tools took Web Sites look and feel to another level. They also allow business layer management within the browser by introducing architectures such as Model View ViewModel (MVVM). These technologies allow the integration of a web site into a Mobile App or Mobile screen (responsive).

We develop mobile native applications and Web developments according to the requirements of our clients, supporting a wide variety of systems and tools such as Android, iOS, Blackberry OS, JQuery, AngularJS, RactiveJs, React.

 

IT SECURITY

We develop distributed systems using AAA protocols and different kinds of cryptographic hash functions.

The computer security concept can be applied to information and data, as well as distributed systems.

The safe transport of information between two distributed points in a system is generally encrypted to make it unreadable against possible attacks. Decrypting it in the destination makes it readable again.

Secure access to distributed resources is ensured by AAA protocols (Authorization, Authentication and Accounting).In this context, Authentication refers to the verification and integrity of information (message authentication) and verification of identities of the acting entities(user authentication).

When we speak of Authorization, we mean the process of determining a particular privilege for a resource, service, etc. This can be granted to a user or device with a particular credential Accounting process is related to the billing of resources or services used.

Some of the protocols which may be used in Information Security are:

  • EAP (Extensible Authentication Protocol)
  • PPP (Point to Point Protocol)
  • HMAC-MD5/SHAx (Autenticacion basada en mensajes aplicado a funciones Hash criptográficas)
  • IPSec (Internet Protocol Security)
  • SSL (Secure Socket Layer)
  • TLS (Transport Layer Security)
  • RADIUS (Remote Authentication Dial In User Service)
  • DIAMETER (es el sucesor de RADIUS)

We develop distributed systems using AAA protocols and different kinds of cryptographic hash functions.

 

SOFTWARE MAINTENANCE

The maintenance process requires a highly qualified team with experience in large and complex developments.

Any system demands maintenance , needs new features, contains errors and requires changes or updates to the underlying technologies.

The maintenance process requires a highly qualified team with experience in large and complex developments.

In this case, the time spent on getting acquainted with the system architecture should be reduced to a minimum so that bug fixing or new features development is successfully completed a lot faster.

We have extensive experience in this area. We have developed improvements and new features for Softswitch and its components, as well as done maintenance of the system of one of the world's largest retailers, with more than 3,000 stores in USA, Mexico and Canada.

The error correction process has the following stages:

  • Situational analysis to understand the problem.
  • Reproduction of the problem in a test box.
  • Identification of the root cause of the problem.
  • Design and documentation of the proposed solution.
  • Coding of the solution in a temporary or staging branch.
  • Testing of the solution proposed.
  • Application of this solution to a new release.

Our service also provides thorough documentation of every step of the maintenance process to contribute to troubleshooting guides and knowledge base using defined templates

 

Tools

Languages

  • Structured C, Pascal.
  • Object Oriented C++, Objetive C, .Net (ASP, C#, VB), Java.
  • Functional Haskell, Clojure, Erlang.
  • Web HTML5, CSS, JQuery, JavaScript, PHP, XML, XSLT, XPath, XLANG, XSD, JSON.
  • Script Python, Perl, sh/ksh/bash.

Protocols

  • Internet IPv4,IPv6, TCP, UDP, HTTP, FTP, SMTP, SNMP, POP, IMAP.
  • Communication/VOIP SIP, MGCP, SS7, RTP/RTCP, H323, GSM, IMS.
  • AAA & Security RADIUS, DIAMETER, PPP, EAP, IPSec, SSL, TLS, OAuth.
  • Web SOAP, REST

Platforms / Frameworks / Libraries

  • STL, Boost, POCO, COM, ATL, MFC, GTK, J2EE, J2ME, ASP .NET MVC, Django, Yesod, NodeJS, AngularJS, KnockoutJS.

Data Bases

  • Relational DB2, UDB, MS SQL Server, Oracle, MySQL, SQLite, PostgreSQL.
  • NoSql MongoDB, REDIS.

Operating Systems

  • Unix Like AIX, Solaris, GNU/Linux, Mac OS.
  • Windows XP/Vista/7/8.
  • Mobile iOS, Android.
 

Contact

CUR-CERIDER
Ocampo y Esmeralda
Rosario, Santa Fe, Argentina
CP 2000

Tel + 54 341 4230504
[email protected]