203 Commits

Author SHA1 Message Date
Chia-chi Yeh
6defd2d47e NEW_API: Unhide RTP APIs.
This change unhides RTP related classes including AudioCodec,
AudioGroup, AudioStream, and RtpStream. This allows developers
to control audio streams directly and also makes conference
calls possible with the combination of the public SIP APIs.

Change-Id: Idfd4edf65a1cbf3245ec2786fbc03b06438b0fb3
2011-03-08 05:59:09 +08:00
Chia-chi Yeh
c52f5b2ec5 RTP: update javadocs.
Change-Id: If600df0eb1e6135aed9f3b2eacfb6bc9ed5d78ff
2011-03-03 08:01:01 +08:00
Chung-yih Wang
89bc1fe73e Activate the wifi high perf. for sip calls.
bug:3487791

Change-Id: I7d8d146f8542cd7df387547c7ce3d5ded27f8e97
2011-02-25 10:21:37 +08:00
Chung-yih Wang
fcd0e50da5 Add rport argument for a reinvite request.
bug:3461707
Change-Id: I69a4f84dde3929c754c838fd12e624b774f44826
2011-02-21 11:53:58 +08:00
Chung-yih Wang
9e25df4463 Make SIP AuthName APIs public.
bug:3326867
Change-Id: I766e6e28f6ad3e84de2c9e24850d472ad00271cc
2011-02-17 15:06:08 +08:00
Hung-ying Tyan
f46013b672 Merge "Merge "SipService: registers broadcast receivers on demand."" into honeycomb 2011-01-18 02:25:52 -08:00
Hung-ying Tyan
e9b5407727 Merge "SipService: registers broadcast receivers on demand."
The previous implementation registers receivers when SipService starts up.
If the user doesn't use SIP at all, SipService will still process connecivity
and wifi state change events, which involves holding wake lock and thus
consumes power unnecessarily.

With this CL, SipService is completely idle if the user doesn't use SIP at all.
It registers receivers only when at least one account is opened.

Bug: 3326998
Change-Id: Idea43747f8204b0ccad3fc05a1b1c0b29c9b2557
2011-01-18 16:55:44 +08:00
Hung-ying Tyan
40f2cacbc9 Merge "SipService: release wake lock for cancelled tasks."
Bug: 3327004
Change-Id: Ice47f973b5f2969f26eaa83a3e4795b2e153ba8b
2011-01-18 16:50:56 +08:00
Chung-yih Wang
0f7de88cb9 Merge "Add auth. username in SipProfile." from gingerbread.
bug:3326867
Change-Id: Ic67dd7d4858f28224e4f01ad8b65bcd3a3c15f10
2011-01-12 11:43:27 +08:00
Chia-chi Yeh
d87be273aa Enable built-in echo canceler if available.
1. Always initialize AudioRecord with VOICE_COMMUNICATION.
2. If echo canceler is available, disable our echo suppressor.

Change-Id: Idf18d3833189a8478c1b252ebe6ce55e923280b3
2011-01-06 17:43:24 +08:00
Chia-chi Yeh
4bf82df2f0 Do not set back to AudioManager.MODE_NORMAL in SipAudioCall.
Change-Id: I8f68e01e5f8c73bb8afd44312cbfadb55aab4330
2011-01-06 15:51:45 +08:00
Chia-chi Yeh
d0da380796 am dc78e3fe: am 3cf71376: RTP: Send silence packets on idle streams for every second.
* commit 'dc78e3fe7f2ffbc810cd54e86e3a83e279d74984':
  RTP: Send silence packets on idle streams for every second.
2011-01-04 17:41:16 -08:00
Chia-chi Yeh
3cf7137642 RTP: Send silence packets on idle streams for every second.
Originally a stream does not send packets when it is receive-only or there is
nothing to mix. However, this causes some problems with certain firewalls and
proxies. A firewall might remove a port mapping when there is no outgoing
packet for a preiod of time, and a proxy might wait for incoming packets from
both sides before start forwarding. To solve these problems, we send out a
silence packet on the stream for every second. It should be good enough to
keep the stream alive with relatively low resources.

Bug: 3119690
Change-Id: Ib9c55e5dddfba28928bd9b376832b68bda24c0e4
2011-01-04 19:54:49 +08:00
Hung-ying Tyan
33808c6d24 am aec9a33f: am e0bd2688: Merge "Check if VoIP API is supported in SipManager." into gingerbread
* commit 'aec9a33f1cfc7c32690bc8e24aefaeb137ab9859':
  Check if VoIP API is supported in SipManager.
2010-12-22 11:35:14 -08:00
Hung-ying Tyan
5bd3782f24 Check if VoIP API is supported in SipManager.
This is to make SipManager.isVoipSupported() effective.
Also add NPE check now that we may return null SipAudioCall when VOIP is not
supported.

Bug: 3251016

Change-Id: Icd551123499f55eef190743b90980922893c4a13
2010-12-21 11:51:03 +08:00
Hung-ying Tyan
635b2b77b9 am d90bc225: am a936b256: Remove SIP realm/domain check
* commit 'd90bc225b9d6e4f8f69d984aa63062a7b20ac65c':
  Remove SIP realm/domain check
2010-12-20 11:33:23 -08:00
Hung-ying Tyan
a936b256eb Remove SIP realm/domain check
as the realm may be different from the domain.

Bug: 3283834
Change-Id: I64c9f0d6d626afdb397c5d378d30afa9d6a64ca9
2010-12-17 10:20:06 +08:00
Hung-ying Tyan
58ee2acba8 Check port in create peer's SIP profile.
SipURI returns port -1 when port is not present in the URI.
Don't call SipProfile.Builder.setPort() when that happens.

Bug: 3291248
Change-Id: I8e608cbc56ea82862df55fdba885f6a864db83ab
2010-12-16 20:46:50 +08:00
Hung-ying Tyan
eecf4a6f11 Check port in create peer's SIP profile.
SipURI returns port -1 when port is not present in the URI.
Don't call SipProfile.Builder.setPort() when that happens.

Change-Id: Ic5fe7301195705a77010038cae20d6629b33135e
2010-12-16 20:27:57 +08:00
Chung-yih Wang
c030a164c8 am c9cc9ab5: am 5f86d7f5: Merge "Fix SIP bug of different transport/port used for requests." into gingerbread
* commit 'c9cc9ab590ef879877e466c0b5f5823e11bb4c47':
  Fix SIP bug of different transport/port used for requests.
2010-12-06 23:36:23 -08:00
Chung-yih Wang
f053292d7a Fix SIP bug of different transport/port used for requests.
bug: http://b/3156148
Change-Id: I4fa5b274d2e90ebde12d9e99822dc193a65bad32
2010-12-07 10:36:19 +08:00
Hung-ying Tyan
2aef9a1e84 am 7da1ffc9: am e2abd103: Merge "Set AudioGroup mode according to audio settings" into gingerbread
* commit '7da1ffc9d2a51ef6120389a06351fd770ab45f46':
  Set AudioGroup mode according to audio settings
2010-12-02 18:02:58 -08:00
Hung-ying Tyan
e2abd103a2 Merge "Set AudioGroup mode according to audio settings" into gingerbread 2010-12-02 17:50:33 -08:00
Hung-ying Tyan
d6b0d689a7 am 6034f9b2: am 06e8cdc0: Fix race between ending and answering a SIP call.
* commit '6034f9b2664799cb4f983657a78023b49efff825':
  Fix race between ending and answering a SIP call.
2010-12-01 09:21:45 -08:00
Hung-ying Tyan
db4245291b am ed34b244: am d7116ff1: Merge "Do not suppress error feedback during a SIP call." into gingerbread
* commit 'ed34b244f1665b604d2a291db504415b10a514d7':
  Do not suppress error feedback during a SIP call.
2010-12-01 09:21:36 -08:00
Hung-ying Tyan
06e8cdc0f8 Fix race between ending and answering a SIP call.
+ Also fix race between ending and changing (holding/unholding) a SIP call.
+ Remove an unused method.

Bug : 3128233

Change-Id: Ie18d8333a88f0d9906d54988243d909b58e07e4b
2010-12-01 15:02:36 +08:00
Chia-chi Yeh
4c7cc83827 Merge "RTP: Prepare to unhide the APIs." 2010-11-30 19:45:47 -08:00
Chia-chi Yeh
53aa6ef70d RTP: Prepare to unhide the APIs.
Polish things a little bit.

Change-Id: I2c3cea8b34b9c858879bc722ea1f38082ba22b8d
2010-12-01 11:35:51 +08:00
Hung-ying Tyan
1c8c173666 am c41b27e2: am 349f3509: Merge "Correct SipService.isOpened() implementation." into gingerbread
* commit 'c41b27e2748ee19620636a14721a1dc14c3b418c':
  Correct SipService.isOpened() implementation.
2010-11-30 16:24:15 -08:00
Hung-ying Tyan
121006789e am 5c85338d: am d9e12303: Merge "Notify SipSessions before closing SIP stack." into gingerbread
* commit '5c85338dcf85462534d85440ded100a8012ff9dd':
  Notify SipSessions before closing SIP stack.
2010-11-30 16:24:05 -08:00
Hung-ying Tyan
ebf28fa3f0 am 0e58a952: am 0bba9535: Merge "Throw proper exceptions in SipManager" into gingerbread
* commit '0e58a9529895e270dae90e69486a59e41de714b8':
  Throw proper exceptions in SipManager
2010-11-30 16:23:54 -08:00
Chia-chi Yeh
342a9be009 am e843dfa8: am bd399b0b: Merge "RTP: Pause echo suppressor when far-end volume is low." into gingerbread
* commit 'e843dfa8dcd0a7bfa956b75424bb5db834975a64':
  RTP: Pause echo suppressor when far-end volume is low.
2010-11-30 16:23:17 -08:00
Hung-ying Tyan
fa81463e88 Set AudioGroup mode according to audio settings
Set AudioGroup mode according to holding, mute and speaker phone settings.

Bug: 3119690
Change-Id: I02803ae105409b7f8482e6c2ef3e67623bd54e03
2010-11-30 18:55:37 +08:00
Hung-ying Tyan
4189d99b6e Do not suppress error feedback during a SIP call.
Bug: 3124788
Change-Id: Ia0a06f72336d1795515428eba0c9f875c32d13d1
2010-11-30 17:00:45 +08:00
Hung-ying Tyan
349f3509f7 Merge "Correct SipService.isOpened() implementation." into gingerbread 2010-11-30 00:56:57 -08:00
Hung-ying Tyan
d9e12303d2 Merge "Notify SipSessions before closing SIP stack." into gingerbread 2010-11-30 00:54:51 -08:00
Hung-ying Tyan
0bba953541 Merge "Throw proper exceptions in SipManager" into gingerbread 2010-11-30 00:51:22 -08:00
Chia-chi Yeh
bd399b0bd2 Merge "RTP: Pause echo suppressor when far-end volume is low." into gingerbread 2010-11-29 22:19:57 -08:00
Hung-ying Tyan
8d1b2a17d9 Throw proper exceptions in SipManager
instead of silently returning null and causing NPE in applications as returning
null is not documented in the javadoc.

Add connection to the connection list in SipCall after dial() succeeds so that
we don't need to clean up if it fails. The original code will cause the failed
connection to continue to live in the SipCall and in next dial() attempt, a new
connection is created and the in-call screen sees two connections in the call
and thus shows conference call UI.

Bug: 3157234, 3157387
Change-Id: Iabc3235f781c4f1e09384a67ad56b09ad2c12e5e
2010-11-03 18:09:31 +08:00
Hung-ying Tyan
262cdfca7a Correct SipService.isOpened() implementation.
Make it return true for all existing accounts.
Rename mOpened to mOpenedToReceiveCalls to make it less confusing.

Bug: 3155849
Change-Id: I327f411bf76afd73434ad1fa2ffef3db1e35d778
2010-11-02 15:17:50 +08:00
Scott Main
e5bc8f617b am 9a8df805: am 1112632a: Merge "docs: revise javadocs for sip add a package description, revise class descriptions and edit some method docs" into gingerbread
* commit '9a8df8054b2e38a27d8e8e6b17365979218f0e3f':
  docs: revise javadocs for sip add a package description, revise class descriptions and edit some method docs
2010-10-29 10:26:24 -07:00
Scott Main
02b1d685cc docs: revise javadocs for sip
add a package description, revise class descriptions and edit some method docs

Change-Id: Ice969a99c830349674c65d99e4b7a6f1d2f24a7e
2010-10-28 16:37:43 -07:00
Chia-chi Yeh
0c7d30660c RTP: Pause echo suppressor when far-end volume is low.
Bug: 3136725
Change-Id: Ieeedd2836d3028045aacac963f44285491708cc3
2010-10-27 18:15:26 +08:00
Hung-ying Tyan
5d0c5cf2d6 Notify SipSessions before closing SIP stack.
Bug: 3116480
Change-Id: I748d63382ade250aed27ccb09ea68c76a433fd27
2010-10-25 16:12:26 +08:00
Hung-ying Tyan
2754b4bde8 am d4d3f36f: am 1257d330: Merge "Clean up pending sessions on incoming call in SipService" into gingerbread
Merge commit 'd4d3f36f4c25b41f4253eadd5e67035fe220cad3'

* commit 'd4d3f36f4c25b41f4253eadd5e67035fe220cad3':
  Clean up pending sessions on incoming call in SipService
2010-10-22 06:01:29 -07:00
Hung-ying Tyan
60c45d0269 Clean up pending sessions on incoming call in SipService
Bug: 3122186
Change-Id: I25c9aa19d138f6940a29025d54e7bc2ffb7daa29
2010-10-22 09:01:49 +08:00
Chia-chi Yeh
39df5331c7 am 044fcd64: am 703aae06: Merge "RTP: Fix non-zero DC in EchoSuppressor caused while aggregating samples." into gingerbread
Merge commit '044fcd64fe999dca0f986dfce9cb3b5b1da77f44'

* commit '044fcd64fe999dca0f986dfce9cb3b5b1da77f44':
  RTP: Fix non-zero DC in EchoSuppressor caused while aggregating samples.
2010-10-21 16:08:47 -07:00
Hung-ying Tyan
6d848f759e am bdc15d8b: am 4056ab97: Merge "Add permission requirements to SipAudioCall and SipManager javadoc." into gingerbread
Merge commit 'bdc15d8b43e7763bf72780d0f683b223b8cf6625'

* commit 'bdc15d8b43e7763bf72780d0f683b223b8cf6625':
  Add permission requirements to SipAudioCall and SipManager javadoc.
2010-10-21 13:44:06 -07:00
Chia-chi Yeh
703aae06c0 Merge "RTP: Fix non-zero DC in EchoSuppressor caused while aggregating samples." into gingerbread 2010-10-21 12:53:37 -07:00
Chia-chi Yeh
8a68b52b98 RTP: Fix non-zero DC in EchoSuppressor caused while aggregating samples.
Rewrite using integer arithmetic to get full 32-bit precision instead
of 23-bit in single precision floating-points.

Bug: 3029745
Change-Id: If67dcc403923755f403d08bbafb41ebce26e4e8b
2010-10-22 03:47:02 +08:00