text:
Thanks for redeeming.{{else}}
Success! Thanks for repurchasing.{{/if}} {{else}} {{#if Expired}}
Increase my visibility!{{else}} {{#if IsMultiPack}}
{{#if HasMultiPack}} You have {{MultiPackCount}} top spot(s) left. Now loading you into the search listings... {{else}} You have used all top spots. Now loading you into the search listings... {{/if}}{{else}}
We are loading you into the search listing pages...{{/if}} {{/if}} {{/if}} {{/if}}
{{Current}} just saw you!{{/if}} {{#if LastTopSpotPurchaseIsMulti }} {{#if HasAnyTopSpot}}
{{#if HasFreeTopSpot }} {{ UnclaimedTopSpotFree }} Free {{/if}} {{#if HasPaidTopSpot }} {{#if HasFreeTopSpot }} & {{/if}} {{ MultiPackCount }} {{/if}} Top Spot{{#if Plural}}s{{/if}} Left{{else}}
0 Top Spot{{#if Plural}}s{{/if}} Left{{/if}} {{else}} {{#if HasFreeTopSpot }}
{{ UnclaimedTopSpotFree }} Top Spot{{#if Plural}}s{{/if}} Left{{/if}} {{/if}} {{else}} {{#if HasResults}}
{{Current}} see you now!{{else}} {{/if}} {{/if}}
You can now invite anyone to meet at your favorite Starbucks.
Limited-time feature
50 year old man | West Seneca, NY, USA | Seeking women 32-50 within 50 miles of Buffalo, NY
A Night at the Museum
So here is a little about me...I enjoy ,art gallery, museum, going out to eat, The faimly condo in Fl, the gym,, and just taking a ride..I work in healthcare (3-11). I enjoy my job very much! The people are great. I also love working with my hands.tearing down and rebuilding painting and remodeling on my free time. Worked construction for years and can fix almost anything. I'm trying this site because I haven't been meeting anyone the right age that's single that I'm attracted too. I seem to meet a ton of people who I have absolutely no interest in though. Try to stay in shape and Im 5'9" 165 brown blue. Tired of bars, been there, done that. Honestly did that way too much. Although a dive bar on the gulf of Mexico always fun with the right person. . Im no angel, actually raised he11 in past, but have now mellowed; considerably. I have several college degrees and consider myself educated but not a snob my any means. Gonna post more pics soon. lets meet for coffee or wings!!!. I gotta work on the photo thing, lol.
Coffee and conversation , Dining out , Gardening/Landscaping , Museums and art , Nightclubs/Dancing , Performing arts , Playing sports , Shopping/Antiques , Travel/Sightseeing , Volunteering
Inline skating, Swimming, Weights / Machines
I exercise 1-2 times per week.
I like Birds, Cats, Dogs, Exotic Pets, Fish, Horses, Other
no animals but I love them
downtown resturants, coffe shop. Going to bar to see band.
University at Buffalo, the State University of New York, Buffalo, NY
The ocean. Spending time with friends, Maderia beach, clean car. Direct deposit. knowing all my bills are paid..A good pizza.
Go out to eat, swim, read a book or watch a movie. Work on motorcycle car or house. I draw and paint although not often enough.
Physics for Future Presidents, The Lucifer Principle, Nat Geo, Discover, Readers Digest
Z{{Cta}} {{#if HasMoreInfo}} ?{{CtaSecondary}} {{/if}}
|What he is looking for
|5'9" (175cms)
|5'0" (152cms) to 5'8" (172cms)
|Body type:
|Athletic and toned
|Slender, About average, Athletic and toned
|Black, Blue, Brown, Grey, Green, Hazel
|Dark brown
|Auburn / Red, Black, Light brown, Dark brown, Blonde, Salt and pepper, Silver, Dark blonde, Grey, Platinum
|No Way
|No Way, Occasionally, Daily, Cigar aficionado, Yes, but trying to quit
|Never, Social Drinker, Regularly, Moderately
|Medical / Dental / Veterinary / Fitness
|No preference
Currently work in Healthcare 3-11
|$35,001 to $50,000
|No preference
|Never Married
|Never Married, Widow / Widower, Currently Separated, Divorced
|Have kids:
|Yes, and they sometimes live at home, No, Yes, and they live away from home, Yes, and they live at home
|Wants kids:
|Not sure
|Definitely, Someday, Not sure, Probably not
|White / Caucasian
|Asian, Black / African descent, East Indian, Latino / Hispanic, Middle Eastern, Native American, Pacific Islander, White / Caucasian
Love my faimly although they are a pain at times..Im sure they say the same about me. Actually I know they say the same about me. Im sure its true.
|Christian / Catholic
|No preference
I make mass about twice a month I should go more. Going alone stinks
|Bachelors degree
|High school, Some college, Associates degree, Bachelors degree, Graduate degree, PhD / Post Doctoral
I love going to college can't wait to go back again....


text:
SHEA McCLELLIN
Boise State Senior
40: 4.63
Has a good first step and tends to time the snap well to get a good get-off. Is comfortable rushing from a two-point stance with a nice first step to challenge the edge. At times will be able to dip the shoulder and turn the corner. Has a decent rip move and inside counter move. Also effective working on stunts. Does his best work when he's attacking upfield. Does a nice job setting the edge as a run defender, forcing ballcarrier back into pursuit. Will break down and wrap up at the point of attack. Capable in coverage when working on the short zones in the flat. Gets good depth there and has a feel for playing in space.
A bit of a tweener that isn't big enough to play with his hand on the ground. Doesn't have great speed to play linebacker and can get exposed at times when you ask him to cover a lot of ground. Struggles in coverage when you ask him to cover backs and tight ends downfield. Doesn't look fluid when asked to change direction and struggles to turn and locate the ball in the air downfield. Can get caught out of position against the zone read and misdrection plays when defending the run.
McClellin plays a hybrid end/linebacker role for Boise State, but spends the majority of his time playing with his hand off the ground. He's a good pass rusher that is an effective edge rusher and blitzer off the corner. He moves well in space, and is comfortable playing linebacker. He tested very well at the Combine, although he doesn't quite show that level of athleticism on tape. But you could see him growing into a capable rush linebacker in a 3-4 scheme, that can occasionally put his hand in the dirt and play end for some 4-3 teams.
(9/3) at Georgia: 1 sack, 1 pressure, 1 QB hit, 1 TFL, 1 stuff
(9/16) at Toledo: N/A, no production
(11/12) vs. TCU: 1 pressure, 1 QB hit, 1 FF; 3 targets, 1 rec., 11 yds, 14 YAC, 0 TDs
(11/19) at San Diego St: 1 pressure, 1 QB hit; 1 tgt., 1 rec, 15 yds, 3 YAC, 0 TDs, 1 INT
2011: 13 GP/13 Gs, 50 tackles, 12.5 TFLs, 7.0 sacks, 2 INTs, 0 PD, 1 FF, 0 FR; 1 blocked kick
2010: 13/13-30-13.5-9.5-1-0-1-2
2009: 13/11-36-6.0-3.0-1-2-0-0
2008: 10/1-14-1.0-1.0-0-0-3-0; 1 blocked kick
- missed 3 games due to a leg injury in 2008
McClellin should make a solid complementary outside linebacker for a 3-4 team. He's not going to be the sort of guy that scares most teams, but if he's playing opposite a top-end pass rusher like a Clay Matthews or DeMarcus Ware, he should be in a position to make his share of plays. He needs to get better in coverage, and he'll work best in a scheme that won't ask to cover a ton of area. He's at his best when he can get upfield and is a solid run defender that should have little issue becoming a solid performer in that arena. It's going to be the coverage that will be his biggest obstacle. I think he's athletic enough that he should be okay, but probably not your first choice to cover an explosive back or top-level tight end. I think he can also play for a 4-3 team as a guy that can play first and second down at linebacker, and then put his hand on the ground on third downs. But he's not the caliber of athlete or pass rusher to think he'll make that work early in his career. Instead, he'll be more of a developmental option that after a couple of years of getting comfortable playing linebacker and filling out his frame as a pass rusher could do that. But he's not going to be a guy that puts up elite production doing that. He's more of a 2-4 sack guy if that's his role. INstead, he'll be better off playing off in a 3-4 where there won't be a huge amount of development time. While he'll be better if he can get a year or two under his belt to develop, he should be able to contribute fairly early as a starter similar to a player like Koa Misi or Brooks Reed. I don't think he'll be a big time pass rusher off the bat, but could probably contribute 3-5 sacks. And eventually, if he continues to develop he could be a guy that could grow into a guy that could give you 6-8 sacks in a 3-4 scheme.
Jarret Johnson, Chargers.
McClellin would be a good fit in Atlanta if they employ a hybrid scheme. He would draw comparisons to Kroy Biermann, but I think is a much superior defender when playing in space than Biermann is, who has consistently struggled in that arena. McClellin could push for time as a rookie SAM linebacker, but probably wouldn't beat out Nicholas. But he could be worked into the lineup on some nickel situations as a situational pass rusher at times. He would be a nice developmental starter in a hybrid scheme. Unless the Falcons used him more as a full-time pass rusher down the line, he probably wouldn't be a big-time sack artist, but he's a guy that as a run defender and pass rusher would be an upgrade over Nicholas down the line at linebacker. He should turn into a solid starter along the lines of a player like Jarrett Johnson in Baltimore, who began his career being coached by Nolan in Baltimore.
Because McClellin appears fairly NFL ready, he would make a nice second round pick in the latter half of that round for a 3-4 team. But I don't think he has the top-level upside that would make him a bit of a reach if he was taken in the Top 50 picks. A 4-3 team would be better off looking at him in the third round.
1-pathetic, 2-poor, 3-weak, 4-below average, 5-average, 6-above average, 7-good, 8-very good, 9-excellent, 10-elite
Speed: 5.0
Strength: 5.5
Tackling: 6.0
Coverage: 5.0
Point of Attack: 7.0
Instincts/Recognition: 6.5
Pass Rush: 6.5
Motor: 7.5
Shea McClellin, OLB/DE, Boise State
Scouting reports of the inside and outside linebackers in the 2012 Draft.
1 post • Page 1 of 1
- Pudge
- Purveyor of Truth & Justice
- Posts: 26397
- Joined: Thu Dec 23, 2004 1:03 pm
- Location: North Carolina
- Contact:
Shea McClellin, OLB/DE, Boise State
"Vincere scis, Hannibal, victoria uti nescis" -- Maharbal, 216 B.C.E.
1 post • Page 1 of 1
Who is online
Users browsing this forum: No registered users and 1 guest

subset: commoncrawl


text:
Use Ink Appointment Plugin & book appointments directly from your website. Now no need to use other services, the plugin is well compatible with
No reviews yet! Be the first to review this plugin!
You must log in to submit a review. You can also log in or register using the form near the top of this page.


text:
Isn't that the kind of ad you would have done? Uh, look, that's the problem. She can't run an ad -- you know, the more powerful ads she can't run against him, because she's afraid of looking too moderate. He's got essentially… His argument is twofold. "Vote for me because I'll bring Republicans and Democrats together; we're not red states, blue states, we're the United States." And second of all—and he said this most passionately in the Wisconsin victory speech: "There are big issues facing the country, and it requires leadership and energy to solve them." Well, the two best counters to those are Hillary saying, "I've actually worked with Republicans and Democrats to get things done." Or McCain saying, even more pointedly, "On all the big issues where Republicans and Democrats have come together, I've been in the middle of bringing them together, and you've been way out there on the fringe. When we pulled together the Gang of Fourteen, you were out on the fringe. When we pulled together a bipartisan answer on the terrorist-surveillance program, you were way out there on the fringe. When Democrats and Republicans, regardless of where they were on the war, came together to give our troops everything they needed while they were in combat, you were way out there on the fringe." Now, she can do some of that, because she's actually tried to work with Republicans over the years. He has not since he got there. He's been coolly detached and sitting on the side. His fingerprints are on, at most, a couple of small items. And then, on the leadership issue, she can say, "Look, I've been in the middle of these big battles. I've been providing the leadership. Sometimes we won, sometimes we lost. But at least I've been involved." And McCain will be able to sharpen that even more.
It seems like you're talking about authenticity here. Are you saying Obama is inauthentic? I'm saying that he has adopted two themes for his campaign that are not supported by his actions.
Do you think Obama would be easier to beat? I try not to think about those things. Because that inevitably leads you to believe, I would like to have A or I would like to have B. You need to keep your mind open about both of them.
You've said -- what was the phrase you used about Hillary? "Fatally flawed"? Fatally flawed. I just thought her flaws would show up in the general election. I didn't know they'd show up as early and as strong as they have.
Which flaws? Uh, calculating. You know, she went through the period where she had the calculated laugh, she went through the period where she had the calculated accents, and you build that on top of a person who already has the reputation that anything she says is calculating, you know.…
Is calculating a terrible thing? It is if people think it's phony. And that's what her problem is. That and the sense of entitlement. You know, the sense of "This is mine, I deserve it; we're the Clintons, this is ours." And I think that really caused a lot of people to say, "You know what? It's not yours." And do we really want to go back? The '90s were nice in a lot of respects, but do we really want to go back to all that drama?


text:
Here's what I need to do. In my PHP script, I need to make a POST request, but one of the arguments must be sent as a text file named data.txt. I already wrote a little script that will send the POST request and send the arguments. The server expects an argument that's an array with two elements, arg0 and arg1. arg0 is a regular string, but arg1 must be a text file. The contents of this file is serialized data that's in a variable. I was able to save the contents of this variable to a local text file, but how do I load this file as the arg1 item of the array?
Any help would be appreciated.


text:
Thanks for redeeming.{{else}}
Success! Thanks for repurchasing.{{/if}} {{else}} {{#if Expired}}
Increase my visibility!{{else}} {{#if IsMultiPack}}
{{#if HasMultiPack}} You have {{MultiPackCount}} top spot(s) left. Now loading you into the search listings... {{else}} You have used all top spots. Now loading you into the search listings... {{/if}}{{else}}
We are loading you into the search listing pages...{{/if}} {{/if}} {{/if}} {{/if}}
{{Current}} just saw you!{{/if}} {{#if LastTopSpotPurchaseIsMulti }} {{#if HasAnyTopSpot}}
{{#if HasFreeTopSpot }} {{ UnclaimedTopSpotFree }} Free {{/if}} {{#if HasPaidTopSpot }} {{#if HasFreeTopSpot }} & {{/if}} {{ MultiPackCount }} {{/if}} Top Spot{{#if Plural}}s{{/if}} Left{{else}}
0 Top Spot{{#if Plural}}s{{/if}} Left{{/if}} {{else}} {{#if HasFreeTopSpot }}
{{ UnclaimedTopSpotFree }} Top Spot{{#if Plural}}s{{/if}} Left{{/if}} {{/if}} {{else}} {{#if HasResults}}
{{Current}} see you now!{{else}} {{/if}} {{/if}}
You can now invite anyone to meet at your favorite Starbucks.
Limited-time feature
38 year old man | Lido Isle, CA, USA | Seeking women 26-38 within 20 miles of Newport Beach, CA
I gotta have more COWBELL!!!!
Howz it!!!! (Any Hawaiians know what I'm talking about?????) I'm a San Francisco native but I moved to Orange County in Jan 2012 after taking a new position with the company I work for. I'm on here to meet new people. The key word is "meet". I'm just looking to find chemistry with really good people. If something more develops from that organically, then I'm all for it! Naturally, my hope is to attract an extremely positive, outgoing, kind, ambitious, athletic, beautiful, health conscience, fun woman who is well grounded and has a solid idea of who she is and what she wants.... Someone who has an impressive history of surrounding herself with a wide variety of exceptional friends and a loving supportive family......Piece of cake, right???? Here's a few bullet points that describe me....II was born and raised in the San Francisco Bay Area but I've lived in a couple other countries (Switzerland, Czech Republic). I recently moved to Newport Beach for new opportunities both professionally and personally. Should be an exciting new year for me. I am often described as being a funny/athletic/outgoing/social/driven/successful man who will easily make new friends with anyone who is willing to engage in conversation. My energy levels definitely go up when I'm with a group of people. When I'm in a 1:1 scenario, I'm much more mellow and laid back. By no means, am I the "Let's go clubbing" party type but the right dose of alcohol will kick start my outgoing side into another gear. I may even start speaking in one of several other accents to fire up the group:) I also love baseball. For 2 years I was a player/coach for the European baseball leagues after playing college ball which was an amazing opportunity to use baseball as a vehicle to travel. I travel back to Europe whenever I can to visit friends there. My physical activity comes from things like basketball a couple times a week, CrossFit, or Stand-Up-Paddle surfing. I stay fit and I look to spend time with people who have similar healthy interests. Ask me more if you would like:)
Coffee and conversation , Business networking , Cooking , Dining out , Movies/Videos , Exploring new areas , Playing sports , Travel/Sightseeing , Watching sports , Wine tasting
Baseball, Basketball, Billiards / Pool, Golf, Other types of exercise, Walking / Hiking, Weights / Machines, Yoga
I exercise 3-4 times per week.
I like Dogs
I don't have a dog right now but I love dogs a lot and I really really really want to get one
Middle of the Road
Hawaii, San Francisco, Prague, beaches of Bali, Fiji, Croatia, Nicaragua, Mexico, all over Spain, Italy, Switzerland.......Any place that serves adult beverages in the warm sun
University of California, San Diego, La Jolla, CA
anything with peanut butter and chocolate, being left handed, molten lava cake, the Container Store, hitting all the green lights, blending into another country, being shown something by a local, seeing ocean life in the wild and up close
CrossFit, cooking, movies, shooting pool, SUP paddle surfing, exotic travel, baseball games, basketball in the park, listening to and seeing live acoustic music, the art of Stand Up Comedy, watching the Academy Awards, chocolate chip cookies..
MoneyBall, Outliers, The Art of Happiness (Dalai Lama), Born Standing Up (Steve martin), 50 Shades of Grey (I'm only kidding......or am I?)
Z{{Cta}} {{#if HasMoreInfo}} ?{{CtaSecondary}} {{/if}}
|What he is looking for
|6'0" (182cms)
|5'0" (152cms) to 6'0" (182cms)
|Body type:
|Athletic and toned
|Slender, Curvy, Athletic and toned
|No preference
|Dark brown
|Auburn / Red, Black, Light brown, Dark brown, Blonde, Dark blonde, Platinum
|No Way
|No Way, Occasionally, Yes, but trying to quit
|Social Drinker
|Social Drinker
|Executive / Management
|Artistic / Creative / Performance, Executive / Management, Financial / Accounting / Real Estate, Legal, Medical / Dental / Veterinary / Fitness, Sales / Marketing, Law enforcement / Security / Military, Fashion / Model / Beauty
Medical consulting
|$100,001 to $150,000
|$50,001 to $75,000, $75,001 to $100,000, $100,001 to $150,000, $150,001+
|Never Married, Widow / Widower, Currently Separated, Divorced
|Have kids:
|Wants kids:
|Definitely, Someday, Not sure
|East Indian, White / Caucasian
|Asian, Black / African descent, East Indian, Latino / Hispanic, Middle Eastern, Native American, Pacific Islander, White / Caucasian, Other
My father is from India and my mother is from Iowa....which means I was raised on corn and curry.
|Spiritual but not religious
|No preference
|English, Spanish
|No preference
|Bachelors degree
|Bachelors degree, Graduate degree, PhD / Post Doctoral
B.S. Animal Physiology and Neuroscience, Spanish Literature


text:
More parents say no to vaccines
San Diego sees more growth than other counties in kindergarten refusals
Many school administrators were reluctant to discuss the rise in exemptions.
Maria Stephens, director of Oasis Organic School, which had the largest number of unvaccinated children, declined to be interviewed. The school's website stays it offers "an alternative, holistic pre-K and elementary education choice" and teaches children about green living practices while focusing on the "body, mind and spirit."
Susan Freeman, principal of L.R. Green Elementary in Escondido, said the school actively works with parents to ensure children are immunized if cost or convenience are the reason for an exemption. Nineteen of its 115 kindergartners (16.5 percent) had personal belief exemptions last fall. That's a significant increase over the previous two years.
"My LVN (licensed vocational nurse) continues to work with families throughout the school year, reminding them that it would be a good idea if their children were immunized," Freeman said. "He's a very hands on kind of guy."
Cameron Curry, executive director of Classical Academy and Coastal Academy, charter schools in Escondido and Oceanside, where 20 percent and 28 percent of kindergartners, respectively, had personal belief exemptions, takes a different approach.
"It's not appropriate for me to meddle with the medical choices our families make," he wrote in an email. Asked if students are at risk, he answered, "This is a question that only public health officials can answer; I am not qualified to do so."
California is one of 20 states allowing philosophical exemptions to vaccines for schoolchildren, as a distinction from religious or medical exemptions. While overall the number of unvaccinated children in California is low, clusters of exemptions create pockets of vulnerability, said Dr. Saad Omer, an infectious disease epidemiologist at Emory University.
"These kids are not spread evenly, and it increases the risk at the local level," he said.
Dr. Wooten said another concern is that people without immunity can put babies or adults with compromised immune systems or those who cannot be vaccinated at risk.
"It definitely does worry me," she said. "Those are the vulnerable populations, and if we don't have that ring, if you will, of individuals vaccinated around them, then we put that younger vulnerable group at risk."
Kevin Crowe can be reached at 619-594-5321 or firstname.lastname@example.com


text:
UNC Wilmington Seahawks at Davidson Wildcats Basketball
Sat, Dec 15, 2012 7:00 pm
John M. Belk Arena, Davidson, NC
Sorry, this event has already taken place. Please see similar events below.
|Tweet | State Guides | Gift Certificates | Policies | Blog | About Us | TicketMasters sold out |


text:
Chocolate Dessert Cups
23 Dec 2010
|6 Ounce (semisweet)
In top of double boiler over hot (not boiling) water, melt chocolate; remove from heat and stir well.
Let cool just until soft pudding consistency.
With small spoon, carefully spread chocolate over inside of 8 fluted paper baking cups, leaving 1/8-inch (3 mm) uncovered border at top.
Freeze for 10 to 15 minutes or until hardened; peel off paper.
(Cups can be refrigerated in airtight container for up to 3 days.)
Rate It
0 Comments
Chocolate Dessert Cups Recipe


text:
Reagan Approves Iran-Contra Counsel
After the Iran-Contra scandal is exposed in November 1986, President Ronald Reagan announces to the nation that he would "welcome the appointment of an independent counsel" to investigate matters. The Iran-Contra Affair involved the secret selling of arms to Iran in exchange for the release of hostages. The money from the arms sales was then used to secretly support the Contras in their battle against the Sandinista government of Nicaragua.
Related Speeches & Audio (10)
Reagan Approves Iran-Contra Counsel
Reagan Approves Iran-Contra CounselAudio Clip (2:14)
Audio Clip (2:14)
After the Iran-Contra scandal is exposed in November 1986, President Ronald Reagan announces to the nation that he would "welcome the appointment of an independent counsel" to investigate matters. The Iran-Contra Affair involved the secret selling of arms to Iran in exchange for the release of hostages. The money from the arms sales was then used to secretly support the Contras in their battle against the Sandinista government of Nicaragua.
Bush and Gorbachev Declare End of Cold War
Bush and Gorbachev Declare End of Cold WarAudio Clip (1:45)
Audio Clip (1:45)
President George H. W. Bush and Soviet leader Mikhail Gorbachev declared an end to the Cold War at the Malta Summit on December 3, 1989. At a joint press conference aboard the Soviet passenger liner Maxim Gorky in Marsaxlokk Harbor, President Bush speaks about his hopes for a cooperative U.S.-Soviet relationship.
Reagan Addresses British Parliament
Reagan Addresses British ParliamentAudio Clip (0:17)
Audio Clip (0:17)
On June 8, 1982, in the first speech by an American president to a meeting of both houses of the British Parliament, President Ronald Reagan presents his hope for a future that would "leave Marxism-Leninism on the ash heap of history."
Ford's Address at the Helsinki Conference
Ford's Address at the Helsinki ConferenceAudio Clip (1:54)
Audio Clip (1:54)
On August 1, 1975, at the Helsinki Accords, a major diplomatic agreement was signed by 35 nations, including the United States and the Soviet Union, in an attempt to secure peace between the eastern and western blocs. In a speech delivered at the Finland conference, President Gerald Ford promises to do his part for the good of all nations.
Nixon Reelected to Presidency
Nixon Reelected to PresidencyAudio Clip (1:03)
Audio Clip (1:03)
On November 7, 1972, incumbent President Richard Nixon won a second term in a landslide victory over Democrat George McGovern. In a brief statement from the Oval Office, President Nixon promises to bring "peace with honor" in Vietnam and to usher in a "new era of peace" with the Soviet Union.
Eisenhower's Inaugural Address
Eisenhower's Inaugural AddressAudio Clip (5:51)
Audio Clip (5:51)
When Dwight D. Eisenhower becomes the 34th president of the United States on January 20, 1953, his inaugural address lays out a nine-point plan for achieving world peace.
Reagan on Historic Visit to Berlin Wall
Reagan on Historic Visit to Berlin WallAudio Clip (1:57)
Audio Clip (1:57)
In June of 1987, President Ronald Reagan stopped in West Berlin on the 750th anniversary of the city and delivered one of his most famous lines when he demanded that Mikhail Gorbachev tear down the Berlin Wall. In an address to the nation following his return from that trip, President Reagan recalls standing next to the imposing structure.
Kennedy Speaks Before Meeting Khrushchev
Kennedy Speaks Before Meeting KhrushchevAudio Clip (1:09)
Audio Clip (1:09)
At a May 31, 1961, Paris press conference, President John F. Kennedy describes his principal aim for meeting with Soviet leader Nikita Khrushchev at the Geneva summit, the first between the two superpowers since 1960.
Reagan Calls for Chemical Weapons Ban
Reagan Calls for Chemical Weapons BanAudio Clip (2:29)
Audio Clip (2:29)
On April 4, 1984, in his 23rd news conference broadcast live on radio and television, President Ronald Reagan publicly calls for an international ban on chemical weapons.
Franklin Roosevelt Returns From Yalta
Franklin Roosevelt Returns From YaltaAudio Clip (3:41)
Audio Clip (3:41)
In February 1945, "Big Three" leaders, Franklin D. Roosevelt, Winston Churchill and Joseph Stalin, met at Yalta to discuss the reorganization of post-war Europe. In an address to Congress on March 1, 1945, President Roosevelt reports the achievements of the gathering.
Related Videos (10)
Read My Lips
Read My LipsVideo Clip (4:20)
Video Clip (4:20)
"Read my lips no new taxes" was the 1988 campaign promise by George Bush that helped boost his popularity with the conservative wing.
Gerald Ford: Mayaguez Incident
Gerald Ford: Mayaguez IncidentVideo Clip (2:55)
Video Clip (2:55)
Watch this historical clip of President Ford as he announces that the crew men of the SS Maya Guez have been rescued from Cambodian forces. This was a very exciting and popular move for President Ford.
Elizabeth Allen
Elizabeth AllenVideo Clip (3:11)
Video Clip (3:11)
Psychiatric nurse Elizabeth Allen volunteered for the Army and requested frontline duty in Vietnam.
Arthur Wiknik
Arthur WiknikVideo Clip (3:42)
Video Clip (3:42)
As an 18-year-old draftee, Arthur Wiknik was rushed through officer candidate's school. After one month in Vietnam he found himself in the middle of the battle of "Hamburger Hill"--one of the most notorious battles of the war.
Bob Clewell
Bob ClewellVideo Clip (3:35)
Video Clip (3:35)
Bob Clewell dropped out of college to join the Army, and arrive in Vietnam just weeks after the Gulf of Tonkin incident in 1964. During his third tour, he was trained as a helicopter pilot, providing air support for ground troops during the Lam Son 719 offensive.
A Soldier's Story: Hamburger Hill
A Soldier's Story: Hamburger HillVideo Clip (4:41)
Video Clip (4:41)
In 1969, Arthur Wiknik found himself in one of the Vietnam War's most notorious battles.
A Soldier's Story: Khe Sanh
A Soldier's Story: Khe SanhVideo Clip (3:06)
Video Clip (3:06)
Amid a siege that would last 77 days, medic Raymond Torres was dropped into central Vietnam.
Tet Offensive
Tet OffensiveVideo Clip (4:53)
Video Clip (4:53)
This massive North Vietnamese surprise attack during the 1968 Tet holiday was a crucial turning point in the war.
On Patrol
On PatrolVideo Clip (4:14)
Video Clip (4:14)
In the field, many soldiers spent their time on patrol, seeking out communist forces, and avoiding lethal booby traps.
Charles Brown
Charles BrownVideo Clip (3:07)
Video Clip (3:07)
Raised in the segregated South, Charles Brown thought his best shot at a better life was to join the Army. He was stationed with the 101st Airborne Division and quickly appointed platoon sergeant, leading search and destroy missions through the jungles of Vietnam.
Related Photo Galleries (1)
John F. Kennedy
John F. Kennedy(20 Photos)
20 Photos
See pictures from the life and presidency of John F. Kennedy.
Most Popular Videos on History.com
Newest Videos on History.com
Vietnam in HD Preview
Two For the Road
HISTORY says Thanks
Shop HISTORY
The White House: Behind Closed Doors DVD
Learn the secrets of America's most recognizable residence.
The Crumbling of America DVD
Is the U.S. infrastructure past its expiration date?
Lincoln Set
Includes two DVD sets on Lincoln's life and legacy and a collectible Lincoln Penny Leather Wallet.
Email Updates
Keep up with the latest History shows, online features, special offers and more.Sign up


text:
Learn more about the five boroughs that make up New York City with our complete guide.
Discover what to do, where to stay and what to see in New York City with our planning tool.
Ready for una aventura in NYC? Let Dora guide you to the most family-friendly things. ¡Vámonos!
Enjoy the New York Film Festival, New York City Marathon, Macy's Thanksgiving Day Parade and more.
Download your free copy or order a guide online today.
Wireless Internet is available at locations throughout NYC—including many parks and libraries.
Get tips, maps and everything else you'll need during your stay.
These NYC-centric mobile apps put the City at your fingertips.
See NYC's iconic sights at discounted rates.
Get the best prices at NYC's bars, clubs and restaurants.
Stay in New York City and save with these offers.
New York City is made up of five boroughs: the Bronx, Brooklyn, Manhattan, Queens and Staten Island. Each one has enough attractions—and enough personality—to be a city all its own. Learn more about them with this guide.
Not everyone can afford the flight to Eastern Europe to partake in some luxurious Russian baths, and so this recently renovated spa/bathhouse is the next best thing. Facilities include wet and dry saunas, a Turkish steam room, a large Jacuzzi, a cold pool, an outdoor sundeck and a café. No frills, but at least you'll be home by dinnertime.


text:
TechNavio's analysts forecast the Global LED Chip market to grow at a CAGR of 32.3 percent over the period 2012-2016. One of the key factors contributing to this market growth is the increasing significance of LED chips. The Global LED Chip market has also been witnessing the increasing focus of the vendors on increasing luminous efficacy. However, the cyclical nature of the LED industry could pose a challenge to the growth of this market.
TechNavio's report, the Global LED Chip Market 2012-2016, has been prepared based on an in-depth market analysis with inputs from industry experts. The report covers the Americas, and the APAC and EMEA regions; it also covers the Global LED Chip market landscape and its growth prospects in the coming years. The report also includes a discussion of the key vendors operating in this market.
The key vendors dominating this market space are Cree Inc., Epistar Corp. Nichia Corp. OSRAM Opto Semiconductor GmbH, and Philips Lumileds Lighting Co.
Other vendors mentioned in the report are Bridgelux Inc., Samsung LED Co. Ltd., Semileds Corp., Seoul Semiconductors Co. Ltd., and Toyoda Gosei Co. Ltd.
You can request one free hour of our analyst's time when you purchase this market report. Details are provided within the report.


text:
Lance Berkman needs knee surgery, making him doubtful for Opening Day
Mar 13, 2010, 9:53 AM EDT
Update: According to Alyson Footer, Astros Sr. Director of Social Media, Berkman underwent arthroscopic surgery on his left knee this morning. Dr. David Crumbie removed loose cartilage debris from the knee and did not see any sign of ligament or meniscus damage. He's still expected to miss 2-4 weeks, leaving Opening Day in doubt.
Friday 1:40 pm: MLB.com's Brian McTaggart reports that Lance Berkman will undergo arthroscopic surgery "to remove loose particles from his left knee" and will miss 2-4 weeks, putting his status for Opening Day in serious jeopardy.
"Whether or not he's going to be ready for Opening Day really just depends on the healing process," general manager Ed Wade said. "They haven't even gone in yet so it's too early to tell, but the normal time frame would be two-to-four weeks. We'll see where it flows from there."
Berkman was sidelined early in camp after bruising his knee during a drill, but Astros team doctor David Lintner called the injury "not serious" and the first baseman returned to the lineup for the next five games, going 4-for-11 with three doubles.
Berkman even said at the time that doctors advised him playing through the pain was "not going to be able to make it worse," but apparently things have changed. Given that he's a 34-year-old with a history of knee problems Berkman figures to be on the long end of the recovery timetable, making Opening Day a serious long shot.
As part of a six-year, $85 million contract Houston holds a $15 million team option or $2 million buyout on Berkman for next season, so after 14 years in the organization there was already speculation that they'd look to trade him or simply decline the option. He ranks sixth on the Astros' all-time list for games played and is second to only Jeff Bagwell in homers.
- OsandRoyals - Mar 12, 2010 at 3:15 PM
Can you hear Ed Wade's line ringing off the hook from all the agents with first basemen clients? Maybe Dye can pretend to be a first-baseman for a few weeks while acting as a fifth outfielder. Naaaah too crazy
Also I just realized that CTB, I mean HBT added recaptchas. I guess that means CBS doesn't have a big brother computer system…
- eh? - Mar 13, 2010 at 10:20 AM
that's as good news as astros could expect. he may not miss much time at all. the footer report doesn't answer the question of how severe the "arthritis" in his knee is. some guys are crazy and keep the bits of debris that come out of their joints. joel zumaya told a reporter once that he has a thumb (nail?) sized bit of debris that was removed from his shoulder.
Top Posts
- Orioles activate Jonathan Schoop after 10-week absence 3
- Settling the Score: Saturday's results 17
- Video: Kris Bryant hits a grand slam as part of a two-homer, six-RBI night 8
- Stephen Strasburg exits start with tightness in left side 10
- In the wake of the Miguel Cabrera injury the Tigers have few good options 19
- Mets general manager Sandy Alderson says Terry Collins' job is safe 11
- Calf injury sends Miguel Cabrera to the disabled list for the first time in his career 7
- Settling the Score: Friday's results 27
Most Commented
- Settling the Scores: Sunday's results (99)
- Mike Scioscia says Josh Hamilton should apologize to Angels owner Arte Moreno (90)
- What Yasiel Puig being a pain in the butt means. And what it doesn't mean. (78)
- Report: Jerry Dipoto "definitely out" as Angels GM (77)
- Brian Dozier is the best second baseman in baseball (72)
- J. Hamilton (3919)
- J. Ellsbury (3447)
- M. Moore (3202)
- P. Corbin (3192)
- M. Sano (3130)
- M. Cain (2819)
- B. Harper (2752)
- J. Soler (2656)
- S. Gray (2606)
- C. Dickerson (2572)


text:
All Stories
Great Dane found after missing more than a year
By Daniel Silliman
Madden video game legacy will live forever
If you would've told me 20 years ago that a 3 x 5-inch video game cartridge would become a cultural phenomenon and a staple in the history of American sports, I would've laughed in your face and handed you an application for admittance into a mental hospital.
Johnson formally resigns at school board hearing
By Curt Yeomans
Goree wins recount in BOE District 3
By Curt Yeomans
Letters to the Editor - Aug. 13, 2008
Are you certain your child can see clearly?
Beauford takes over as Chamber president
By Joel Hall
Witness identifies maintenance man as would-be rapist
By Daniel Silliman
Obituaries - Aug. 13, 2008
Betty Mae Asbell
Riverdale woman collects supplies for teachers
By Curt Yeomans
DeKalb man found dead in Ellenwood
By Daniel Silliman
Jonesboro appoints new municipal court judge
By Joel Hall
CSU's Wilcox headed to U.S. Amateur
By Doug Gorman


text:
THURSDAY, June 30 (HealthDay News) -- A new strain of drug-resistant scarlet fever appears to be rapidly spreading through Hong Kong and mainland China, but U.S infectious disease experts remain confident that the new bug isn't heading here anytime soon.
Hong Kong has documented more than 615 cases of this new strain of scarlet fever this year, and two children have died, according to news reports. More than 9,000 cases of scarlet fever have also cropped up in China. These numbers are much higher than what is typically seen there, which is why some public health experts believe a mutant strain of group A strep is responsible for this outbreak.
Scarlet fever is an age-old childhood scourge that has been rare in the United States since 1970. Caused by group A strep infection, the illness causes fever, sore throat, white spots on the tonsils, swollen lymph nodes, a bright-red "strawberry" tongue, and a tell-tale red rash that starts on the abdomen and spreads throughout the body within two days. Scarlet fever is treated with antibiotics, but the new Hong Kong strain appears to be resistant to at least two commonly used drugs.
"There are more infections than we would see with the standard strain and a higher level of resistance, but we don't have a lot to be concerned about right now," said Dr. Bruce Hirsch, an infectious disease expert at North Shore University Hospital in Manhasset, N.Y.
But, he added, "It is a small world, and there are people traveling to Hong Kong and back every single day. And we need to monitor our public health trends and be sensitive to changes or any increase in somewhat unusual infections like scarlet fever."
Scarlet fever is typically spread by direct person-to-person contact and is more common in children under 10, Hirsch said. "Kids under 10 are not the usual business traveler-type," he added.
Still, "wash your hands and make sure yo
|Copyright©2010 ScoutNews,LLC.
All rights reserved


text: electric By Matt Hendricks June 26, 2012 1:11 PM Share on Facebook Share on Twitter Category: Share on Facebook Share on Twitter More Leave a comment Send to a friend! Print this page Pin it! Reddit This! Share on Tumblr! Best of WFGR Grandwich 2015 Is Underway Puppy Enjoying Air Conditioning for the First Time Is Super Cool Bliss Ringo Starr's 10 Most Historic Moments Court Documents Show Bill Cosby Admitting Drugging Woman Back In 2005 Recommended For You Best of the Web


text:
When sending emails I want my server to have DomainKeys and SPF records setup records correctly, is there a website I can email that does validation of my DomainKeys and SPF records?
Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.
For SPF, Scott Kitterman's tool is the best: http://www.kitterman.com/spf/validate.html.
For DomainKeys, go to http://www.mailradar.com/domainkeys/ - works very well too.
This Email Server Test should help you.


text:
The system and method of the present invention provides an improved service node containing at least one service application, a conversion process and a TCP/IP service circuit handler for communicating with a TCP/IP-driven external peripheral device over a communications link. According to a preferred embodiment, by selecting a switch as the TCP/IP-driven external peripheral device, the call capacity of the improved service node can also be increased. This is preferably accomplished by receiving an incoming call into the external switch, notifying the improved service node of the incoming call, and creating an instance of the service application on the service node, which service application is associated with the incoming call. The service application requests the switch place a corresponding outgoing call--which it does. The switch then hairpins the incoming and outgoing calls together and notifies the service application of their connection. The improved service node then tears down its instance of the call, thereby releasing the associated memory supporting the instance, as well as the connection (but not the communication link) between the service node and the switch, all without disturbing the hairpinned calls. The hairpinned calls remain stored in the switch fabric of the external switch until one of the hairpinned calls reports an on-hook condition.
1. A method for increasing service node call capacity, wherein said service node handles incoming and outgoing communications, comprising the steps of:
a) receiving an incoming call into a peripheral resource connected to and external to a service node containing at least one service application and a service circuit handler for communicating with said peripheral resource;
b) creating an instance of said service application on said service node associated with said incoming call;
c) formatting, by said service application, an action request for said peripheral resource to place a corresponding outgoing call;
d) placing, by said peripheral resource external host, said outgoing call;
e) hairpinning, by said peripheral resource, said incoming and outgoing calls together;
f) parking said hairpinned calls in said peripheral resource's switch fabric until one of said hairpinned calls reports an on-hook condition;
g) notifying, by said peripheral resource, said service application of successful connection of said incoming and outgoing calls; and
h) tearing down by said service node of said instance of the incoming call, thereby releasing the associated memory supporting said instance, and the connection between the service node and the peripheral resource, without disturbing said hairpinned calls.
2. The method for increasing service node call capacity of claim 1, after said step of parking said hairpinned calls, further comprising the step of notifying, by said peripheral resource, said service application of successful connection of said incoming and outgoing calls.
3. The method for increasing service node call capacity of claim 1, wherein said service application is a single number reach type telecommunications application.
4. The method for increasing service node call capacity of claim 1, wherein said peripheral resource is at least one switch.
5. The method for increasing service node call capacity of claim 1, wherein said peripheral resource is a billing system.
6. The method for increasing service node call capacity of claim 1, wherein said peripheral resource is a paging system.
7. The method for increasing service node call capacity of claim 1, wherein said peripheral resource is a voice mail system.
8. A method for increasing service node call capacity, wherein said service node handles incoming and outgoing communications, comprising the steps of:
a) receiving an incoming call into a transmission control protocol/Internet protocol (TCP/IP)-driven host connected to and external to a service node containing at least one service application and a TCP/IP service circuit handler for communicating with said TCP/IP-driven host;
b) creating an instance of said service application on said service node associated with said incoming call;
c) formatting, by said service application, an action request for said TCP/IP-driven host to place a corresponding outgoing call;
d) placing, by said TCP/IP-driven host, said outgoing call of step c);
e) hairpinning, by said TCP/IP-driven host, said incoming and outgoing calls together;
f) parking said hairpinned calls in said TCP/IP-driven host's switch fabric until one of said hairpinned calls reports an on-hook condition;
g) notifying, by said TCP/IP-driven host, said service application of successful connection of said incoming and outgoing calls; and
h) tearing down by said service node of said instance, thereby releasing the associated memory supporting said instance, and the connection between the service node and the TCP/IP-driven host, without disturbing said hairpinned calls.
9. The method for increasing service node call capacity of claim 8, wherein said step of notifying further comprises the concurrent step of keeping said incoming call resident on said TCP/IP-driven host.
10. The method for increasing service node call capacity of claim 8, wherein said TCP/IP-driven host is a switch.
11. The method for increasing service node call capacity of claim 8, after said step of tearing down said hairpinned calls, further comprising the steps of:
j) determining that said outgoing call has reported an on-hook condition;
k) maintaining said incoming call resident on said TCP/IP-driven host;
l) notifying said service node of said incoming call's request for additional service;
m) repeating steps b) through h); and
n) repeating steps j) through m) as often as requested by said incoming call.
12. The method for increasing service node call capacity of claim 11, wherein said additional service is a request to be connected to voice mail.
13. The method for increasing service node call capacity of claim 11, wherein said additional service is a request to place another outgoing call.
1. Field of the Invention
The present invention relates generally to telecommunications systems, and more particularly to a system and method for providing an improved service node with increased telecommunications capabilities.
2. Summary of the Related Art
To achieve the increasingly complex functions demanded by today's telecommunications users, there are an ever-increasing number of service applications which provide more and more sophisticated functions. To accommodate these powerful and persistent service applications, service nodes were developed as platforms on which these service applications could reside. An example of such a service node would include the service circuit node developed by AT&T, as a part of their Advanced Intelligent Network (A-I-Net™ or AIN) technology.
A service node typically accepts telephone traffic at its various ports and creates an instance of the requested service application upon receipt of each incoming call. Depending upon the particular service application involved, the service node uses its voice processing facilities to obtain information about the call routing, then dials the telephone number desired by the caller, and hairpins the incoming and outgoing calls together to connect the incoming user's call with his expected destination. The incoming call remains on the service node's switch fabric port during connection, as well as during the entirety of the call. Service node memory is also tied up in maintaining the instance of the particular service application associated with each call from reception of the incoming call until one of the phones returns to its on-hook status. When one of the parties goes back on-hook, the service node breaks down the service application instance and frees up the respective service node switch fabric ports.
An example of a service application which runs on a service node could be a single number reach-type application which allows a subscriber to provide a single telephone number by which he can be reached. This AIN service application allows a subscriber (sometimes also referred to as a "user" herein) to define a custom call-routing schedule and directory that enables the subscriber's calls to find him anywhere. The directory defines locations, such as "office" or "car", and associates each location to a directory number. The schedule identifies a subscriber's location based on time of day and day of week. Such a program enables a subscriber to distribute a single or "universal" phone number; when a call is placed to that number, the service application is responsible for managing the actions needed to find the subscriber based on his personalized directory and schedule and route calls to him. There are several companies that offer a single number reach-type product implemented on a service circuit node, such as AT&T's Personal Number, and Universal Number™ produced by Electronic Data Systems Corporation (assignee of the present invention).
Unfortunately, the service node has at least two limitations: low call capacity and no capability to communicate with an external TCP/IP-driven device. A service node's call capacity typically is approximately 200 concurrent calls. As demand for a particular service application increases, or traffic generally picks up, the service node's call capacity becomes a serious limitation. Also, as described above, since every instance of a service application remains for the entire duration of its associated call, more and more service node memory remains necessarily unavailable for additional service applications or their increasingly sophisticated functionality(ies) which demand increasing amounts of existing service node memory.
In view of the above problems associated with the related art, it is an object of the present invention to provide a system and method for an improved service node with increased call capacity.
Another object of the present invention is to provide a system and method for an improved service node with TCP/IP communication ability to enable the node to communicate with external TCP/IP-driven devices or hosts.
One embodiment of the present invention achieves these objects by providing a service node containing at least one service application, a conversion process and a TCP/IP service circuit handler for communicating with a TCP/IP-driven external peripheral device over a communications link. The conversion process converts commands received from the service application and then forwards them to the TCP/IP-driven external peripheral device via the TCP/IP service circuit handler. Reports received from the periphery device via the service circuit handler are also converted by the conversion process and sent to the respective service application. The conversion process also keeps a linked list of "call"-specific data for use during call instance teardown and during "second dial tone" processing.
To increase the call capacity of the service node, the present invention preferably employs an external switch as the external host. This permits the service node to "park" a call between two users in the switch fabric of the associated external switch for the duration of the telephone call. The incoming call is routed through the external switch and forwarded directly to the service node for processing. The outbound call is also made through the associated external switch without using the service node's switch fabric. The inbound and outbound calls are then hairpinned together and the connection between callers is complete. As a result of this arrangement, the service node can tear down its instance of the call, thereby releasing the associated memory running the front end processes, and the connection between the service node and the external switch is also released, all without disturbing the connected callers. The call continues on the external switch; when it ends, the service node is notified for possible further processing.
A further advantage of employing the present invention in a service node, together with an external switch, is that a service node can now handle international traffic of all types and can also interface with international, as well as domestic, signalling data networks.
These and other features and advantages of the invention will be apparent to those skilled in the art from the following detailed description of preferred embodiments, taken together with the accompanying drawings, in which:
FIG. 1 is a block diagram illustrating a preferred embodiment of the present invention within a typical service node;
FIG. 2 is a block diagram illustrating a preferred embodiment of the present invention in more detail;
FIG. 3 is a block diagram illustrating a system including a service node with the present invention implemented therein and an external switch associated therewith, said system receiving an inbound call; and
FIG. 4 is a block diagram illustrating a system including a service node with the present invention implemented therein and an external switch associated therewith, after an inbound call and an outbound call have been connected.
A preferred embodiment of the present invention consists of two parts within a service node: a TCP/IP service circuit handler and a conversion process. Such invention has been implemented on an AT&T service circuit node, although other service nodes could be used. The TCP/IP SCH handles all of the UNIX socket communications between a service node (SCN) and an external TCP/IP circuit device or host such as a specialty digital switch (hereinafter referred to as "SDS"). The conversion process of the present invention handles all of the conversion of commands and reports between the service applications and the external peripheral device (e.g., SDS).
FIG. 1 is a block diagram representing a typical service node 120 (hereinafter referred to as "SCN 120") which is shown to include a preferred embodiment of the present invention therein. Within SCN 120 there is at least one service application (hereinafter referred to as "SA") 110, at least one action executor ("AEX") 115, at least one message handler ("MSGH") 125, an internal switch fabric (not shown), other processes which are not relevant to the understanding of the present invention and therefore will not be further discussed herein, and other service circuit handlers 130,135,145 which, though not pertinent to the present invention's system or method, are shown for sake of clarity. SCN 120 is preferably composed of a plurality of UNIX processes that function independently or as a group to perform Advanced Intelligent Networking (AIN) activities. SA 110 is the intelligent part of the AIN. AEX 115 is typically not a separate process from SA 110, but is compiled together with SA 110 to function as a single process. All processes within SCN 120 communicate with each other by using message handler ("MSGH") process 125.
As mentioned above, there are many SAs in today's telecommunications market providing numerous services and capabilities for their subscribers. It should be understood that although the present invention will be discussed in terms of a single number reach-type service packaged application ("SPA") as the referenced SA, this is for illustrative purposes only and should in no wise limit the scope of the present invention.
Consider for the moment FIG. 3, which is a block diagram representing how service circuit handler 140 (hereinafter referred to as "SCH 140") preferably operates within a service circuit node environment, such as SCN 120. As is apparent, conversion process 150 and TCP/IP SCH 140 have been added to SCN 120. At any given time there may be more than one SA communicating with a single SCH 140. When an SA 110 needs to communicate with SCH 140, it formats an action message and the AEX 115 portion of the particular SA 110 writes the message to MSGH process 125. MSGH process 125 routes the SA's message to the destination specified in the message header, in this example SCH 140, via conversion process 150. SCH 140 receives the message request and sends it out to an external peripheral resource 160 such as a specialty digital switch (hereinafter referred to as "SDS 160") such as is produced by Summa Four, using TCP/IP sockets over an Ethernet connection. It should be understood that although the present invention is described herein for ease of discussion as a T1 specialty digital switch, the present invention could also enable a service node to handle, among others: ISDN, ATM, SONET, voice or data, bridges, routers, b-routers, frame relay, domestic-capable, and international-capable switching traffic. It should also be understood that although the present invention is described herein as implemented using an Ethernet communication media, the present invention should in no wise be limited to an Ethernet, as it could instead use any standard communication media such as ATM, SS7, FDDI, etc. SDS 160 returns a response to SCH 140 which in turn sends the response back to SA 110 through conversion process 150 to AEX 115 via MSGH process 125. Conversion process 150 converts SA action requests into commands the TCP/IP host will understand, in this case, the switch SDS 160. It is also responsible for storing information for the "life" of a call. On the return path, conversion process 150 converts an SDS 160 report into an SA 110 event message.
TCP/IP SCH 140 operates as a control computer for SDS 160. Any reports sent from SDS 160 to SCN 120 are received by SCH 140 and forwarded to conversion process 150. Conversion process 150 may internally act upon a received report or may forward the report to a designated SA 110. Any communication from an SA 110 to SDS 160 occurs through SCH 140. All communications between SCH 140 and external TCP/IP-driven host SDS 160 are preferably performed over two Ethernet connections, to allow for redundancy or "hot" backup. It should be understood that such communications can also be performed over a single Ethernet connection. The problems with this latter approach is that if the Ethernet card on SDS 160 or SCN 120 fails then there is no way to communicate between them. Thus, if the single TCP/IP connection fails then all communications between machines is lost.
The obvious advantage to using a second or redundant "hot" link to (standby) SDS 160 is to recover from communications and hardware problems. When TCP/IP SCH 140 initializes, when there is only one communications connection, it connects to the primary side of SDS 160. However, if a second communications connection exists, when TCP/IP SCH 140 initializes it will also connect to the standby side of SDS 160 and the connection will always remain active. Thus, with the latter arrangement, if a communications problem occurs on the primary connection between SDS 160 and SCN 120, SDS 160 will preferably automatically switch to its standby side and notify conversion process 150 via LWP 175 that a switch has occurred. Conversion process 150 interprets the report from SDS 160 that a switch has occurred, and it in turn notifies SCH 140 of the switch. Once SCH 140 has been notified, the standby side becomes the primary side. SA 110 remains unaware that these problems have occurred, and it will go about its business normally.
FIG. 2 is a block diagram illustrating a preferred embodiment of the present invention including TCP/IP SCH 140 (in terms of (PROC 170, LWP 175) and conversion process 150. TCP/IP SCH 140 is preferably a software program written in C++ that provides real time control, resource management, maintenance control, and fault reporting for a TCP/IP service circuit. SCH 140 is responsible for controlling and maintaining the peripheral resource (which in the particular preferred embodiment of the present invention illustrated in FIG. 2 is a specialty digital switch, but which could also be a pager, voice mail, a billing system, a remote processing computer (RPC) or auxiliary computing system, a cellular short messaging system, a wireless data system, a data storage device, an electronic mail system or other external TCP/IP-driven host). SCH 140 is implemented as generically (and modularly) as possible to allow it to be used for other applications needing to use TCP/IP to communicate to other external hosts.
SCH 140 preferably consists of a single UNIX process within which there is a control process ("CPROC") 170 which is preferably a heavy weight process, and light weight process ("LWP") 175, managed by the control computer (CC; not shown). A heavy weight process has a separate address space so that it can be switched in, or out, of the address space. LWP 175 is a subprocess or "thread" that shares CPROC 170's address space so that context switching of LWP 175 is very fast. LWP 175 controls CPROC 170 until LWP 175 voluntarily relinquishes control by performing a hard break or blocking on a read. The CPROC receives messages through a service circuit interface ("SCI") 165 requesting access to the Ethernet service circuit, while LWP 175 reads messages from the service circuit. CPROC 170 also reports hardware errors for the service circuit.
LWP 175 reads from the UNIX sockets that were opened by CPROC 170. The UNIX function poll is used to determine if there is a socket to be read and if so, the LWP 175 reads all the sockets in a single sweep. For example, in the AT&T SCN environment, an LWP cannot perform a blocked read or the entire process (HWP and LWP) will relinquish its time slice. To prevent the LWP process from blocking, it will set a timer and poll the UNIX sockets for new messages. Any new messages received on the Ethernet socket will be forwarded to conversion process 150 using MSGH process 125.
Messages are passed between SA 110 and SCH 140 by SCI 165. SCI 165 is a set of UNIX functions that provides the basic functionality used by all SCHs 140. It provides common, standardized communication and control software between SCHs 140 and other SAs 110. The SCI code is compiled with SCH 140's code, and runs in its process; there is no separate SCI 165 process. SCI 165 controls SCH 140's message queue, reading the messages, interpreting them, and passing them to SCH 140 software. Each SCH 140 preferably has only one message handler subsystem (MSGH) queue, which is maintained by SCI 165.
SCH 140 is responsible for reading from and writing to a service circuit. CPROC 170 uses MSGH process 125 to receive and process messages from conversion process 150. SDS-specific messages are written directly out the UNIX socket to SDS 160. LWP 175 receives messages from the Ethernet communications connection and forwards them to conversion process 150. Reports received from SDS 160 are then forwarded back to SA 110 as event messages.
Control process (CPROC) 170 compiles the SCI library within its code. SCI 165 communicates with any process running on SCN 120 that uses MSGH process 125 to send and receive Inter-Process Communication (IPC) queue messages. For example, a message that needs to be forwarded to TCP/IP SCH 140 comes into CPROC 170 from conversion process 150, using SCI 165. CPROC 170 is blocked on a read to MSGH 125 queue, forwarding SDS-specific messages out the UNIX socket. LWP 165 handles the reads from the TCP/IP service circuit. Any response from the TCP/IP service circuit is received by LWP 175 and is sent to conversion process 150 using MSGH process 125. A single LWP 175 preferably handles one to n specialty digital switches (or other TCP/IP-drive systems and devices) external to SCN 120 with one socket for each SDS 160 attached to SCN 120.
LWP 175 shares the memory segment of CPROC 170 and therefore has access to the class that established the socket connection to SDS 160. LWP process 175 does not have the same restrictions as CPROC 170, in the sense that it must provide functions with specific names that the INIT process will call in a particular order. LWP 175 defines an entry point function to SCI 165 and the INIT process calls the LWP entry point function after CPROC's procinit function has completed. When LWP 175 starts, the following functions are executed:
The initialization function is responsible for getting socket information from the class that established the initial connections with SDS 160. After getting the socket information, the `C` structures necessary to use the UNIX poll function are filled out.
The main execution function will be responsible for reading the UNIX sockets, setting a timer, and sending messages to conversion process 150 with data received from the socket. The first step is to poll the UNIX ockets to check if there is a new message to read. If there is a new message, LWP 175 reads the socket and sends the data to conversion process 150. Regardless if there was a new message to read, the LWP 175 process is put to "sleep". Putting the process to "sleep" is necessary to allow the CPROC a time slice to retrieve a message from its message queue. When the LWP timer expires, the sockets are polled again. The cycle continues until CPROC 170 shuts down.
CPROC 170 is responsible for receiving action messages from conversion process 150 and sending those actions on the TCP/IP service circuit. If the message type received is directed to the TCP/IP service circuit, then the message is written directly out the UNIX socket to SDS 160. The main responsibility of CPROC 170 is to establish a connection to SDS 160. This process is running under the control of an INIT process, and if it aborts it will automatically be restarted.
Configuration data to be used by SCH 140 is provided within an ASCII flat file that is read at startup time. Due to any inability to provide the location of the configuration file within a command line, there is preferably a hidden file in the root directory that contains the location of the actual configuration file. The hidden file contains the fully qualified directory and file name of the configuration file for the SCH.
One type of input parameter to SCH 140 is for configuration data that TCP/IP SCH 140 needs to do its job. Configuration data preferably includes data that is unique to each installation of the TCP/IP SCH 140 on each SCN 120. For example, LWP 175 needs the address of the SDS 160 Ethernet board slot. The configuration parameters for SCH 140 are preferably stored within an Oracle database or an ASCII flat file. The following are descriptions of example configuration parameters for TCP/IP SCH 140:
HostName--This field indicates the remote host name to be retrieved from the/etc/host file. The name in the/etc/host file preferably has a numeric after the name, i.e., Summa 1. If there is a primary and secondary Ethernet connection the name might, for example, be Summa1a and Summa1b.
RedundantHost--This field indicates if the remote host has redundant Ethernet capabilities. For example, a `1` indicates YES and `0` indicates NO.
ReconnectTimer--This field indicates the amount of time to wait before trying to reconnect to a host that failed to connect during initialization. This field is typically measured in seconds. An example valid range might be from 0 (zero) to 1800 seconds (30 minutes).
EthernetPollTimer--This field indicates the amount of time to wait between checking the Ethernet socket between the external host and SCN 120 for new data. This field is typically measured in milliseconds. An example valid range is from 1 to 20000 milliseconds.
SocketReadAttempts--This field indicates the number of consecutive reads to perform against a single socket before returning from the READ function. If there is no data in the socket the function will return. An example valid range is from 1 to 20 reads.
PingTimer--This field indicates the amount of time to wait before trying to `ping` the remote host. This field is typically measured in seconds. An example valid range is from 0 (zero) to 300 seconds (5 minutes).
Port--A list of all the valid socket names on the external host, in this case, SDS 160. There can be multiple Port parameters. The field is preferably numeric.
A copy of an actual TCP/IP SCH configuration file can be found in Appendix A attached hereto. A copy of example classes preferably used within the SCH 140 process is attached hereto as Appendix B.
Another type of input to TCP/IP SCH 140 are user interface messages. These messages are used for debugging SCH 140. A further input to SCH 140 are system messages such as process shutdown. When SCH 140 receives this message, CPROC 170 closes all files, detaches from shared memory and exits.
Other input parameters to SCH 140 are IPC messages which are passed from conversion process 150 to CPROC 170, via MSGH process 125. TCP/IP SCH 140 preferably only communicates with conversion process 150. This means messages received from other subsystems within SCN 120 will preferably be ignored. The destination of an IPC message is determined by an nsHost parameter. The spData field is a block of data and is not interrogated by TCP/IP SCH 140.
nsHost--is a number that indicates to which relative socket the data portion of this message is be written. There can be from 1 to n number of sockets open. Conversion process 150 determines to which relative socket, or host, the data should be written.
nsLength--The length of the data portion of this message.
spData--The actual data that is going to be transmitted out the UNIX socket. The data may have non-printable characters.
The main outputs from SCH 140 involve IPC messages passed between CPROC 170 and conversion process 150. TCP/IP SCH 140 preferably only sends messages to conversion process 150. For example, the message ID TcpConvertMsg is sent by LWP 175 when reading a message off a socket from the Ethernet port. The destination of the message is preferably always conversion process 150. The nsHost parameter is determined by which socket was read.
nsHost--is a number that indicates which relative socket the data portion of this message came from. Conversion process 150 determines which associated SA 110 should receive the data.
nsLength--is the length of the data portion of this message.
spData--is the actual data that came from the UNIX socket. The data may have non-printable characters.
Conversion process 150 is responsible for converting any SA-formatted message to a format that an external host can support. Conversion process 150 also converts reports received from the remote host (e.g., SDS 160) to a format that SA 110 can understand. It is also responsible for keeping a linked list (also referred interchangeably with "tree" herein) of "call" specific data because it is a permanent process that is not removed from memory between SA 110 call instances.
Conversion process 150 runs under an INIT subsystem of SCN 120. In addition to various strictly administrative processes, conversion process 150 preferably registers itself with the MSGH 125 system, retrieves the queue number of TCP/IP SCH 140, reads the configuration file, attaches to shared memory, initializes shared memory if the run level is 2 or higher, and initializes the Btree, COcallInfo and COswitch classes in shared memory.
Conversion process 150 also checks every message type it receives and performs actions depending on the message types. For example, if it receives "TcpConvertMsg" as a message type, conversion process 150 sets pCallInfo and pMsg in switch instance and calls processMsg method for the switch instance. Some of the messages received may be requests for information, therefore not requiring interaction with the service circuit. Thus, if conversion process 150 receives a message type that is an action request for call information, conversion process 150 attempts to locate the call by finding its respective outgoing port in the outgoing port list for each SDS 160 where, with the present discussion a single number reach-type application is SA 110, the universal number field matches. If it finds a match, it sets the pCallInfo and pMsg attributes in switch instance and calls processMsg method for the switch instance. If it is not found, it sends back an appropriate fail message to the inquiring SA 110.
As with TCP/IP SCH 140, at any given time there may be multiple SAs communicating with conversion process 150. Process 150 receives the action messages from SA 110, formats a command for SDS 160 to understand, and sends the command to TCP/IP SCH 140. SCH 140 in turn writes the message out to SDS 160 using TCP/IP sockets over an Ethernet connection. Any response returned from SDS 160 will be sent back through TCP/IP SCH 140 (via LWP 175) to conversion process 150. Conversion process 150 will convert the message into an event and forward the event to AEX 115. All messages are passed using MSGH process 125.
Specifically, conversion process 150 uses the MSGH library to receive and send messages to the AEX 115 and SCH 140 processes. Conversion process 150 keeps an internal list of all active calls. This list contains specific information about switch remote host (SDS 160) and ports utilized, the call's state and the AEX call id (which is used to tell AEX 115 for which call an event has been received and information on any outstanding action).
When an action is received from AEX 115 for SDS 160, conversion process 150 locates the associated instance of the call and formats a command to the corresponding SDS 160. When a report from SD 160 is received, conversion process 150 parses the message and determines if the message needs to be passed as an event to an AEX. A report will only be formatted into an event if its corresponding call is on the active call list and there was an outstanding action for the call, that was fulfilled by the report received.
Conversion process 150 can handle interfacing with multiple SDS 160 switches and SA 110/AEX 115 applications simultaneously. Moreover, conversion process 150 handles all remote host (e.g., SDS 160) specific tasks, so that SA 110 and AEX 115 need not know what type of switch they are communicating with, thus adding a layer of modularity for ease of upgrade. Conversion process 150 is preferably structured such that new switches and other peripheral devices may be added easily without modifying existing classes.
There are preferably six main object-oriented classes employed by conversion process 150, namely: COshmem, COshmemObj, Btree, COcallInfo, COswitch, and COSDSswitch classes. As before, it should be remembered that these class names are merely design choices and should in no way limit the scope of the present invention. Briefly, the COshmem class is the interface to the shared memory segment used by conversion process 150. The COshmemObj class is used in conjunction with the COshmem class to define each object type in shared memory. The Btree class defines binary trees used for storing information. Each entry in each tree is preferably an index (usually a switch port or callid), and a pointer to data. These trees are used to rapidly find a call instance. The COcallInfo class contains information about each call. The instances of the COcallInfo class are preferably contained in lists within the COswitch class. The COswitch class is preferably a base class that contains information about a generic switch. Each switch type has its own inherited class using the COswitch class as its base. For example, the COSDSswitch class is inherited from the COswitch class; therefore it interprets switch-specific reports and formats switch-specific commands.
More specifically, the COshmem class manages the shared memory for conversion process 150. Conversion process 150 stores all information concerning all associated SDS 160 (switches), the active calls and Btree nodes in shared memory. Thus, if conversion process 150 dies, it can restart without losing any information.
The Btree class is used to define and manage binary trees. Several binary trees are used in the conversion process, so that the look-up of call instances is very fast. Each entry (datum) is defined by its key and has a pointer to a user defined data block. In the case of the conversion process, the data pointer always points to the COcallInfo block for the associated call.
The COcallInfo class contains all the information associated with a particular call instance. When an external host (e.g., SDS) sends a report resulting from an incoming call, a call instance is created; when an on-hook report is received for the incoming call, the call instance is removed. The call instance is stored in the pCallList tree for the switch on which the call is active. When a report is received from SDS 160, it is matched to its respective call instance by the incoming port or outgoing port. These values are associated to the call instance in the call list and outgoing port list. The majority of manipulation of the call instances occurs in connection with the COSDSswitch class.
The COswitch class contains information about each switch. It is preferably used as a base class for each type of switch the conversion process 150 may handle. Thus, any new switch type (e.g., SDS 160) will also be inherited from this base class. The inherited classes may not contain attributes, because they must be the same size as the base class, because base class object types are defined in shared memory. The following are examples of static attributes which may be declared, since they do not change the size of an instance of the class. Again recall, attribute names and action names are matters of design choice and should not in any way limit the scope of the present invention.
The pCallList attribute contains a pointer to the base of the tree that contains all active calls for this switch. They are stored in a tree so that they made be retrieved quickly. Each call instance is of type COcallInfo. The calls are stored using the incoming port as the primary key. If a call has two incoming ports (one from the caller and one phantom), two entries reside in the tree, but they refer to the same call instance.
The pOportList attribute contains a pointer to the base of the tree that contains all active outgoing ports. They are stored in a tree for quick retrieval, preferably using an outgoing port as the primary key and, if a call has multiple outgoing ports (such as a T1 connection with the SCN and a port used to make an outgoing call), the call will have two entries in the tree, but the entries refer to the same call instance.
The pPendingCallList attribute contains a pointer to the base of the tree that contains the ports from which pagers are being called, but the calling party has hung up. They are kept here so that the ports involved in the call can be torn down after the page completes without having to keep the call instance active.
The COSDSswitch class is inherited from the COswitch class and processes the actions from AEX 115 and reports from SDS 160. Illustrative methods performed by conversion process 150 on the COSDSswitch class include:
The static set and get methods record and fetch the values for the static variables associated with the class. These variables contain the various control algorithms to dial a call, dial a pager base, dial voice mail for a subscriber, dial voice mail for a non-subscriber, the size of the shared memory segment, etc.
The processMsg method is a method used to process any incoming message. This will call one of the other message processing methods for the class, depending on the message type.
The deleteCall method removes a call from the call list as well as any other lists in which its ports and callid may reside.
The processEDSinfo method handles all operations on an eds!info action. It fills in the callid field in the call instance, changes the state to SA active and sends an eds!info-- completed message back to the requesting SA 110. If the prior state was second dial tone wait, the complete message will contain "second dial tone" as the call type. If the prior state was voice wait, the complete message will contain "voice" as the call type. Otherwise, the complete message contains "new" as the call type.
The processEDScall method handles an eds!call action. It calls the placeCall method to place a call using the outpulse rule in DialOutpulseRule, a phantom incoming port or the incoming port specified in the message and either the outgoing port specified in the message or the outgoing port resource group specified in the message.
The processEDSconnectPort method handles an eds!connect action. It formats an outgoing port control ($69) command and sends it to SDS 160. For more information on the parameters sent in the commands to SDS 160, refer to Appendix D.
The processEDSteardownPort method handles an eds!teardown-- port action. It formats an outgoing port control ($69) command and sends it to SDS 160.
The processEDSquietPort method handles an eds!quiet-- port action. It formats a voice path control ($66) command and sends it to SDS 160.
The processEDScallVM method handles an eds!call-- vm action. It calls the placeCall method to place a call using the outpulse rule in attribute SubVMOpulseRule (if call type is "voice") or VMOpulseRule (if call type is not "voice"), a phantom incoming port, and either the outgoing port specified in the message or the outgoing port resource group specified in the message.
The processEDSconnectVoice method handles an eds!connect-- voice action. It formats a voice path control ($66) command and sends it to SDS 160.
The processEDSpageDisplay method handles an eds!page-- display action. It calls the placeCall method with outpUlse rule of PagerOutpulseRule+pager type from the message, a phantom incoming port, and either the outgoing port specified in the message or the outgoing port resource group specified in the message.
The processEDSpageTone method handles the eds!page-- tone action in the same manner the processEDSpageDisplay method handles the eds!page-- display action.
The processEDSpageVoice method handles the eds!page-- voice action in the same manner the processEDSpageDisplay method handles the eds!page-- display action.
The processEDScancelCall method handles the eds!cancel-- call action. It will abort any type of call that is in progress. The call may have been placed by any of the eds!call, eds!call-- vm, eds!page-- tone, eds!page-- display or eds!page-- voice actions. It will call the teardownPorts method to issue a teardown command and remove the ports from the call and outgoing port lists.
The processSCsetCid method handles the resource!assign action. It transfers control of the ports of the requesting SA 110 to the call specified in the message. It then removes the call instance for the requesting SA 110.
The processSCdealloc method handles the action received when SA 110 shuts down. If the state of the call is not "second dial tone" or "voice mail", then the deleteCall method is executed to remove the call instance. Otherwise, the callid is removed from the active call list.
The processSDSrpt method first parses the message from SDS 160. If the message was an echoed command, the status of the command is checked. If the status is successful, then the associated instance call is found using the findCall method. If there is an outstanding action for the call and a report is needed before it can be determined that an action was successful (as determined by the bWaitingRpt flag), then nothing is done. If there is an outstanding action for the call and a report is not needed to determine if the command is successful, then an acknowledgment event is sent to the respective AEX 115. If the message was a report, one of the following three methods are called.
The processDArpt method handles the outgoing port change of state report. It first finds the associated call by performing searches on the call list and the outgoing port list. If the state of the call is new, second dial tone wait or voice mail wait, and the change was outpulse rule completed, the outgoing port for the call is saved. It then performs actions based on the last action issued for the call, if any. It handles the following prior actions:
eds!call: If the state is "outpulse rule completed", an eds!call-- proceeding event is sent back to AEX 115. If the state is "off-hook", an eds!answered event is sent back to AEX 115. If the state is "failed", "outpulse rule processing aborted", "supervision detected outside of a rule", "supervision error detected" or "on-hook", then a eds!call-- failed event is sent back to AEX 115. If the call failed, then the teardownPorts method is called to release the outgoing and phantom ports.
eds!call-- VM: same as eds!call
eds!page-- voice: same as eds!call, except that this action does not return the eds!call-- proceeding event.
eds!page-- display, eds!page-- tone: If the state is "outpulse rule completed", this action returns the eds!page-- display-- completed or eds!page-- tone-- completed events to AEX 115, as required. If the state is "failed", "outpulse rule processing aborted", "supervision detected outside of a rule", "supervision error detected" or "on-hook", the eds!page-- dlsplay-- failed or eds!page-- tone-- failed event is sent to AEX 115. In any of the above cases, the teardownPorts method is called to release the outgoing and phantom ports. It preferably should never receive an "off-hook" message for these pager types, so that is ignored.
eds!teardown-- port: If the change of state is "on-hook", then the eds!teardown-- port-- completed event is sent to AEX 115.
Regardless of any prior actions that are processed, if the change of state was on-hook, then the outgoing port is removed from the outgoing port list. Also, if the change of state was on-hook for a second dial tone or voice mail call, then the placeCall method is called to redial SCN 120 and the call is placed in second dial tone wait or voice mail wait state.
The processDBrpt method handles the incoming port change of state report. It first finds the call by searching the call tree. If no cali instance is found, nothing is done. If a call instance is found, an eds!teardown-- port action is outstanding and the change is on-hook, then an eds!teardown-- port-- completed event is sent back to the SA. If the change is on-hook for the incoming port of a call, then the deleteCall method is executed to remove the call instance.
The processDDrpt method handles the executed report resulting from an incoming call. It creates a node in the incoming call tree for the call. It records the universal number dialed, the incoming port and sets the call state to new.
The teardownPorts method issues a command to SDS 160 to tear down the incoming and/or outgoing ports. If an outgoing port in setup mode (not attached to an incoming port) is being torn down, an outgoing port control ($69) command is issued. Otherwise, an incoming port control ($6A) command is issued. It also removes the entries for the outgoing port list and call list, as required.
The issueCmd methods fills in the network header for an SDS command and sends the command to SDS 160. It records the action that resulted in the command in the nlLastAction attribute.
Conversion process 150 receives all action messages from AEX 115; therefore, such messages preferably use the SCschSpec base class when defining the messages. This base class contains information on what SA 110 and what call within SA 110 the message was sent for. Examples of actions messages conversion process 150 may receive include: "info" (SA 110 seeking additional information regarding a call), "call" (SA 110 requesting SDS 160 make an outbound call), "call-- vm" (SA 110 requesting SDS 160 make an outbound call to voice mail), "teardown-- port" (SA 110 directing SDS 160 to remove link between incoming and outgoing port, and optionally leave one or both ports in set up state), "quiet-- port" (SA 110 directing SDS 160 to have a port listen to quiet while the call is being connected), "connect-- port" (SA 110 directing SDS 160 to hairpin an incoming and outgoing port), among others. See Appendix D, attached hereto for additional information regarding these and other example action messages.
Another type of input to conversion process 150 is the reports from SDS 160. The attributes for the message are:
msg-- type--(TcpConvertMsg)
size--size used in data buffer
data--buffer to hold report from switch
Conversion process 150 outputs event messages. Several event types are sent from conversion process 150 to SA 110, in response to the actions described above. Their classes are all inherited from their associated actions, except for the "answered" and "call-- proceeding" events, which have separate class definitions. Appendix E illustrates example events conversion process 150 will send to SA 110. The commands for SDS 160 are preferably sent using the same class that the reports from the same switch use.
Conversion process 150 also handles interfacing with many types of pagers and voice mail systems. Most of the control of the interface is on SDS 160. Conversion process 150 supplies the digit string(s) that need to be outpulsed and the control algorithms of SDS 160 determine when they are to be outpulsed and handle any detection of tones, prompts, etc.
More specifically, when paging, preferably field 1 contains the number of the pager to be dialed, field 2 contains the pin or mailbox number, field 3 contains the dial back number and field 4 is unused. If a certain type of pager does not use a pin and/or dial back number, SDS 160 does not outpulse that field. For voice mail, separate control algorithms are used when dialing for a subscriber and when dialing for a non-subscriber. When calling voice mail, field 1 will contain the number to dial and field 2 will contain the mailbox number.
As was the case with TCP/IP SCH 140, the configuration data needed for conversion process 150 is preferably provided within an ASCII file that is read at startup time. The following are descriptions of example configuration parameters for conversion process 150:
OutPulseRule--The Outpulse rule parameter specifies the control algorithm to use on SDS 160 to place an outbound call that does not go to voice mail or a paging terminal.
VoiceOutpulseRule--The voice mail Outpulse rule parameter specifies the control algorithm to use on SDS 160 when connecting a calling party to a subscriber's voice mail system.
SubVoiceOutpulseRule--The subscriber voice mail Outpulse rule parameter contains the control algorithm to use when connecting a subscriber to their voice mail.
PagerOutpulseRuleBase--The pager Outpulse rule base parameter is the number that is added to the pager type to determine what control algorithm is used to dial the paging terminal. One control algorithm is used for each pager type.
SharedMemorySize--The shared memory size is the amount in bytes of shared memory that the process will need. The shared memory will store all information concerning the host switches 160 and active calls. The process needs 150 bytes for each call that may be active in the system at any time, plus a base size of 1000 bytes.
An Example of an actual conversion process configuration file can be found in Appendix B attached hereto.
The user interface for the present invention is preferably defined as a Human Machine Interface (HMI) that can send messages from the console (not shown) to TCP/IP SCH 140. These messages will request SCH 140 to return information or perform a specific task. The HMI used to communicate with TCP/IP SCH 140 is preferably the Local Maintenance Terminal (LMT), provided by AT&T.
To better illustrated a preferred embodiment of the present invention, consider FIG. 3. User "A" dials a telephone number, such as a "universal" number, as was described earlier. User A's call is received by SDS 160 which preferably sends a report (also referred to as "DD report" herein) to SCH 140 indicating that a new call has been received by SDS 160. The DD report preferably contains SDS 160 port information and the universal number associated with the call. LWP 175 forwards the DD report to conversion process 150 which in turn creates an entry in its link list. Meanwhile SDS 160 uses its internal operating system, along with its control algorithms to "dial" the universal telephone number received from the inbound call of User A to "call" SCN 120. The T1 connection between SCN 120 and SDS 160 transparently forwards external callers from SDS 160 to SCN 120. As a result of calling SCN 120, SDS 160 sends an outgoing port change of state (also referred to as "DA" or "$DA" herein) report to SCH 140 over the TCP/IP signalling link. The DA report is received by LWP 175 within SCH 140, which process in turn forwards the message to conversion process 150. The DA report preferably contains SDS 160 port information that single number reach type SA 110 will require to manage the call according to its application logic. As a result, selected information from the DA report is kept in a linked list by conversion process 150 for future processing.
Specifically, the relevant service application (SA) 110 requests information about the new call from conversion process 150. SA 110 communicates with conversion process 150 by directing AEX 115 to format an action request. This action request is then sent to conversion process 150 via MSGH process 125. The call information requested will preferably include which SDS 160 port that User A's call came in on and what type of call User A's call is. While the types of call can include "second dial tone", "voice mail", "pager", "new", etc., it should be understood that many types of calls can be accommodated with the present invention and that such list should in no way limit the scope of the invention. In the present example, the type of call is designated "new".
Conversion process 150 returns the requested call information as an event message to SA 110 via MSGH process to AEX 115. AEX 115 converts the message for SA 110 to understand. In response to the message, SA 110 requests SCH 140 to perform an outgoing call. To make this request, SA 110 passes the request to AEX 115, which formats it into an action request and forwards the request to conversion process 150. Conversion process 150 converts the request into a command message format understandable by SDS 160 and sends the message to SCH 140.
CPROC 170 receives the message and forwards the command message to SDS 160 to perform an outgoing call. The command message contains the specific port information that SDS 160 requires to place the outgoing call to User "B". SDS 160 preferably receives the universal number along with the number being dialed when an outbound call is processed. The universal number will be placed as additional data in the $6A command to SDS 160. The SDS 160 control algorithms that process the $6A command will pulse the universal number out as additional data when establishing the initial outbound phone call.
Looking now at FIG. 4, SDS 160 makes the outgoing call and User B picks up the phone to answer the incoming call. SDS 160 then sends a $DA report to SCH 140 that the call was successfully connected. LWP 175 receives the $DA report and forwards it to conversion process 150. Conversion process 150 updates its linked list entry to indicate that the call was successfully connected, and forwards the report back to AEX 115 as an event message. AEX 115 reformats the message so SA 110 will understand it.
In response to the message that the call between SDS 160 and User B was successfully connected, SA 110 requests SCH 140 to "hairpin" User A to User B. This request is directed to AEX 115 which formats it into an action request and forwards the message to conversion process 150. Conversion process 150 in turn converts the message to a command message SDS 160 will understand and forwards it to CPROC 170. CPROC 170 sends the command message to SDS 160 to "hairpin" the two callers together.
SDS 160 connects the two callers and sends an echoed command report with status to SCH 140 that the connection between callers was successful. LWP 175 returns the report to conversion process 150, which in turn forwards the confirmation report back to AEX 115 as an event message. In response to this message, SA 110 sends a return message to SCH 140 that its call instance is shutting down, which results in freeing up the memory space and port associated with managing the call. The hairpinned call is stored or parked in the switch fabric of SDS 160 and it resides there until the call is terminated, at which time the switch fabric and ports of SDS 160 employed during the call are made available for another call.
Now for the sake of illustration, assume the call type had been designated by SDS 160 as "second dial tone". Everything would have proceeded exactly as before, with command and event messages, action requests and reports communicated between SA 120 and SCH 140 as described above. However, at the point that User B puts his phone back on-hook, thereby breaking the hairpinned connection between Users A and B residing on SDS 160, SDS 160 sends a $DA report to LWP 175 that User B has gone back on-hook. The report is forwarded to conversion process 150 which in turn formats a command and sends the message to SDS 160 via SCH 140 to redial SCN 120. SDS 160 then "calls" SCN 120. This action, when performed by SDS 160, effectively reconnects User A with SCN 120, and starts a new instance of SA 110 to be associated with the incoming call. As before, SDS 160 "dials" the universal telephone number received from User A to "call" SCN 120. It should be understood that this sequence of events may be repeated over and over again as often as User A desires to make yet another call.
It should be understood by those skilled in the art that the present description is provided only by way of illustrative example and should in no manner be construed to limit the invention as described herein. Numerous modifications and alternate embodiments of the invention will occur to those skilled in the art. Accordingly, it is intended that the invention be limited only in terms of the following claims: ##SPC1##
Patent Citations
Non-Patent Citations
Referenced by
Legal Events
Original Image