VoIP integrating system and method thereof

An internet phone integrating system includes a PC, a VoIP phone, a softphone, an HID signal-transmitting unit, and a media transmitting unit. The VoIP phone provides an HID inputting signal. The softphone provides an HID outputting signal and a media controlling signal and decodes an audio coding streaming to a media data flow. The HID signal-transmitting unit receives the HID outputting signal from the softphone and sends the HID outputting signal to the VoIP phone, and receives the HID inputting signal from the VoIP phone and sends the HID inputting signal to the softphone. The media transmitting unit receives the media controlling signal and media data flow from the softphone and sends the media controlling signal and media data flow to the VoIP phone, and receives the media data flow from the VoIP phone and sends the media data flow to the softphone.

RELATED APPLICATIONS

This application claims priority to Taiwan Application Serial Number 97109523, filed Mar. 18, 2008, which is herein incorporated by reference.

BACKGROUND

1. Field of Invention

The present invention relates to VoIP integrating system and method. More particularly, the present invention relates to VoIP integrating system and method for a VoIP phone and PC-based softphone.

2. Description of Related Art

Internet phone services available in the market now include a dedicated Internet phone (VoIP phone), a PC-based softphone, and a gateway. The dedicated Internet phone and signaling gateway are internet phone devices that can make or receive internet phone calls directly, whereas the PC-based softphone has to be installed on a PC that's turned on. Since the dedicated Internet phone provides users with the experience that's a lot like the experience of using an ordinary desktop telephone, conventional desktop telephone users prefer this option. On the other hand, the PC-based softphone provides better mobility than the dedicated Internet phone, and also provides richer and fancier multi-media user interfaces, so it attracts a certain group of users.

The dedicated Internet phone supports VoIP protocols such as SIP and H.323, while the PC-based softphone programs are Skype, MSN and YAHOO Messenger. MSN and YAHOO Messenger provide messaging services additionally. The dedicated Internet phone can only support one type of protocol at one time due to the hardware limitation. For the PC-based softphone, a user can install multiple software programs on a PC to support various types of protocols.

When it comes to process various types of VoIP protocols, a way is using a designated server to process the exchange between the various types of protocols and audio codec. For example, Microsoft's OCS server can process the exchange between MSN and SIP. However, this method only works in a business environment, and not all VoIP protocols are open to the exchange. For example, Skype is not open to the exchange of protocols.

For the foregoing reasons, there is a need to offer a system or method to solve the stated problem.

SUMMARY

An objective of the present invention is to provide a system that allows a user to use the VoIP phone as a controlling interface to make or receive internet phone calls transmitted via PC-based softphones such as MSN Messenger, YAHOO Messenger, or Skype.

To achieve the foregoing objectives, and in accordance with the purpose of the present invention as broadly described herein, the present invention provides an internet phone integrating system. The system includes a PC, a VoIP phone, a softphone, an HID signal-transmitting unit, and a media transmitting unit. The VoIP phone provides an HID inputting signal. The softphone provides an HID outputting signal and a media controlling signal and decodes an audio coding streaming to a media data flow. The HID signal-transmitting unit receives the HID outputting signal from the softphone and sends the HID outputting signal to the VoIP phone, and receives the HID inputting signal from the VoIP phone and sends the HID inputting signal to the softphone. The media transmitting unit receives the media controlling signal and media data flow from the softphone and sends the media controlling signal and media data flow to the VoIP phone, and receives the media data flow from the VoIP phone and sends the media data flow to the softphone.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Please refer toFIG. 1.FIG. 1is a diagram showing possible hardware connections according to one preferred embodiment of this invention. A VoIP phone110and a user PC120are both connected to the Internet. The VoIP phone110supports at least one internet protocol such as SIP (Session Initiation Protocol) and H.323. After the VoIP phone110creates connection with the user PC120via the Internet, a user can use the VoIP phone110as a controlling interface to call or receive internet phone calls transmitted via softphones such as MSN Messenger, YAHOO Messenger, or Skype. The VoIP phone110can still be used to call or receive Internet phone calls via the internet protocol it supports.

Please refer toFIG. 2.FIG. 2is a system diagram according to one preferred embodiment of this invention. The internet phone integrating system includes a VoIP phone110, a user PC120, a softphone130, an HID (Human Interface Devices) signal-transmitting unit150, and a media transmitting unit170.

The softphone130decodes the protocol it supports and provides an HID outputting signal and a media controlling signal, and decodes an audio coding streaming to a media data flow. The HID signal-transmitting unit150is installed on the user PC120. The HID signal-transmitting unit150receives the HID outputting signal from the softphone130and sends the HID outputting signal to the VoIP phone110, and receives the HID inputting signal from the VoIP phone110and sends HID inputting signal to the softphone130. The media transmitting unit170is installed on the user PC120. The media transmitting unit170receives the media controlling signal and media data flow from the softphone130and sends the media controlling signal and media data flow to the VoIP phone110, and receives the media data flow from the VoIP phone110and sends the media data flow to the softphone.

The softphone130communicates with the VoIP phone110by sending requests to the HID signal-transmitting unit150and the media transmitting unit170, and then the HID signal-transmitting unit150and the media transmitting unit170use a signaling protocol to send request message packets to the VoIP phone110.

Based on the HID outputting signal received from the softphone130, the HID signal-transmitting unit150responds accordingly. The softphone130accesses the HID signal-transmitting unit150with the following functions: open( ), read( ), write( ), close( ) and ioctl( ). The softphone130use open( ) to obtain the access to and description of the HID signal-transmitting unit150. The HID signal-transmitting unit150will try to establish a connection with the VoIP phone110, and reports whether the connection is successful back to the softphone130.

The softphone130uses read( ) to obtain commands entered by the user from the VoIP phone110. The VoIP phone110sends out a corresponding request message packet to the HID signal-transmitting unit150after receiving a command signal such as the user's pressing of keys. For example, the VoIP phone110sends out a DGT0 key down request message packet or an off hook request message packet to the HID signal-transmitting unit150. Then, the HID signal-transmitting unit150uses “Interrupt” to inform the softphone130to receive data and transform request message packets to corresponding USB HID data.

The softphone130uses write( ) to enter HID control commands to the HID signal-transmitting unit150. For example, HID control commands could be LED On and LED Off, and displaying texts on LCD. The HID signal-transmitting unit150sends out a request message packet to the VoIP phone110accordingly. For example, The HID signal-transmitting unit150sends out a “Hold LED on” request message packet or a “LCD write text” request message packet, and the VoIP phone110would change its appearance based on the message.

The softphone130uses close( ) to release the access right to the HID signal-transmitting unit150. The HID signal-transmitting unit150responds the close( ) action by tearing down the connection with the VoIP phone110and reporting whether the teardown is successful back to the softphone130.

The softphone130uses ioctl( ) to do extra settings to the HID signal-transmitting unit150. The HID signal-transmitting unit150might ignore the request or send out request message packets to the VoIP phone110based on the settings.

The softphone130also accesses the media transmitting unit170with the following functions: open( ), read( ), write( ), close( ) and ioctl( ). The softphone130use open( ) to obtain the access to and description of the media transmitting unit170before playing media data. The media transmitting unit170will in turn send out an “open RTP channel” request message packet to the VoIP phone110.

The softphone130uses read( ) to obtain media data from the media transmitting unit170. The VoIP phone110compresses media data, puts the compressed media data into RTP media data packets (or puts the uncompressed media data into RTP media data packets directly) and sends the RTP media data packets to the media transmitting unit170after receiving a media signal such as voice or video recording. The VoIP phone110sends out one or more RTP media data packets to the media transmitting unit170based on the size of media data. The softphone130then performs the read( ) action to obtain media data from the media transmitting unit170, and the media transmitting unit170in turn decompresses the media data in the RTP media data packets and sends to the softphone130.

The softphone130uses write( ) to write the uncompressed or decompressed media data into the media transmitting unit170. The media transmitting unit170puts media data into one or more RTP media data packets and sends to the softphone130. The media data in RTP media data packets might be compressed or uncompressed.

The softphone130uses close( ) to release the access right to the media transmitting unit170. The media transmitting unit170responds the close ( ) action by sending a “close RTP channel” request message packet to the VoIP phone110.

The softphone130uses ioctl( ) to do extra settings to the media transmitting unit170. The media transmitting unit170might ignore the request or send out request message packets to the VoIP phone110based on the settings.

Please refer toFIG. 3.FIG. 3is a system diagram according to another preferred embodiment of this invention. The internet phone integrating system includes a VoIP phone310, a user PC320, Skype330(a softphone), Media Player340, and a driver350. The driver350includes HID driver352and audio driver354.

Users install the driver350on the user PC320and connect the user PC320and the VoIP phone310to the Internet. The driver350, similar to a USB phone, includes an HID driver352and audio driver354. When a user uses the VoIP phone310as a controlling interface to make an internet phone call via Skype330, the VoIP phone310uses a signaling protocol to send a request message packet to HID driver352. HID driver352in turn sends the user' event data (having the same effect of user's pressing of keys on the USB phone) to Skype330. Skype330asks audio driver354to play voice data, so audio driver354will ask the VoIP phone310to open RTP data flow. RTP data flow might be RTP data flow of Pulse-code modulation (PCM), RTP data flow of G.711, or RTP data flow with other encoding methods.

Audio driver354then sends RTP data flow to the VoIP phone310, and the VoIP phone310will play the audio signal with a speaker. At this moment, the connection for sending signals between the VoIP phone310and Skype330is already created. The VoIP phone310uses a microphone to receive the user's audio signals and sends to audio driver354with RTP data flow. Then, Skype330obtains the user's audio signals from audio driver354. This completes the signal transmission process between the caller and the receiver.

When the user uses the VoIP phone310as the controlling interface to receive an internet phone call via Skype330. HID driver352responds the request from Skype330and informs the VoIP phone310an incoming call. When the user picks up the call, audio driver354asks the VoIP phone310to open RTP data flow. Then, audio driver354sends the audio signal from Skype330with RTP data flow to the VoIP phone310. Similarly, Media Player340can use audio driver354to open RTP data flow and uses the speaker on the VoIP phone to play music files on the user PC.

When the VoIP phone310receives the request to open RTP data flow, the VoIP phone310takes this event as an event supported by its protocols. As a result, the VoIP phone310can use keys like “flash” and “line” to switch between internet phone calls from different sources, such as SIP or Skype.

In conclusion, the user can use the VoIP phone as a controlling interface to make or receive internet phone calls transmitted via PC-based softphones such as MSN Messenger, YAHOO Messenger, or Skype, instead of using a USB phone connected directly with a PC. The VoIP phone can still be used to call or receive Internet phone calls with the VoIP protocol it supports.